做java小项目所遇到的一些问题
eclipse导入其他项目时不显示
很有可能是你将项目名字修改或者移动了项目路径
解决:将原版项目导入,改名的话再在eclipse里重构,再在重命名文件夹
在重新导入。
eclipse导入其他项目报错
统一解决方法:
右键项目 --> Properties–>Java Build Path 将里面报错的删掉
重新 Add External JARs 添加tomacat里的 serlet-api.jar。如果JRE也报错,将其删除后,点击Add Library 选择JRE System Library 再选择Alternate JRE: 完成即可。
然后点击Java Compiler 看看JDK版本是否一致 ,再然后点击 Project Facets
点进去后,点击Runtimes,勾选自己的服务器如下图
最后点击应用,即可发现大部分报错消失。
idea报错 java: 无法从静态上下文中引用非静态 变量 this
public class homework8 {
class CShape
{
public double area()
{
return 0.0;
}
}
class CCircle extends CShape
{
double pi=3.14;
double radius;
public CCircle(double r)
{
radius=r;
}
public double area()
{
return pi*radius*radius;
}
}
public static void main(String[] args) {
homework8 homework = new homework8();
System.out.println(homework.new CCircle(2.0).area());
}
}
原因:不能在一个类的main中直接创建其内部类,内部类的创建需要实例化外部类才能使用,而static方法是不能在未实例化外部类(homework8)的情况下使用内部类(CCircle),
解决方法:
将CShape、CCircle类从里面放到homework8的外面
equals()和== 比较数据出错
Map<String,Object> map = get_collect_uid(request,session);
List<Map> list = (List<Map>) map.get("list");
int i = 0;
for (Map<String,Object> product:list){
System.out.println("找寻符合条件:"+product.get("id"));
// 对象比较
//这里使用==判断为false
if (product.get("id").equals(id)){
System.out.println("移除操作:"+id);
list.remove(i);
break;
}
i++;
}
map.put("list",list);
System.out.println(map);