public class Demo{
Map<String,String> test = new HashMap<String,String>();
test.put("A","A");
System.out.println(test);
}
为什么这段代码中不允许put
函数?
Java不是这样工作的。如果您想在加载类时实现这个put
,您可以尝试使用静态
块。
public class Demo{
static Map<String,String> test = new HashMap<String,String>();
static{
test.put("A","A");
System.out.println(test);
}
}
或者,如果您希望它在每次创建对象时都被初始化,请将其保留在适当的构造函数中或只是默认执行块中(类似于静态
,但没有静态
关键字)。
public class Demo{
Map<String,String> test = new HashMap<String,String>();
public Demo(){
test.put("A","A");
System.out.println(test);
}
}
如果要在对象初始化过程中运行一些代码,请将其放在大括号中:
public class Demo{
Map<String,String> test = new HashMap<String,String>();
{ // This is now part of object initialization
test.put("A","A");
System.out.println(test);
}
}
put
或任何其他方法调用在类声明部分是不允许的,因为Java不知道何时运行此代码。该语言对运行执行代码有特定的规则:它要么是方法调用的一部分,要么是对象或类初始化的一部分。
大括号中的代码成为对象初始化的一部分。任何时候运行Demo d=new Demo()
测试映射都会被插入到映射中,映射本身也会被打印出来。请注意,打印输出不会很漂亮。参见此Q
问题是,我试图使用findViewById()全局初始化TextView对象,但它在运行时抛出一个错误,然后,如果我在onCreate()或任何其他方法中使用它,初始化工作就会很好。 我正在为API级别22及以上开发
问题内容: 以下接口和类已成功编译。 问题在下面的输出中提到: 输出: X 瞧,MyInterface是一个接口, 那为什么编译器允许编译 mi.getClass(),mi.wait()。 或如何在接口中使用Object类的方法。 ÿ 编辑 :-我接受拒绝的答案,因为这是最具解释性的。但是在阅读了答案之后,又出现了一个问题:- “ 请记住,如果接口试图在Object类中声明一个声明为’final’
什么类实际实现了接口?我正在研究收集API。。而且似乎在实现类中返回的实际方法是直接在本身中指定的。 接口指定用于操作迭代器的实际方法。。但是我很难找到实现这个的实际类。 哪个类实际上-实现-接口,允许类中的方法工作? 我确信必须有一个实现类,因为调用本身肯定不能返回接口,必须有实例化的东西。
我知道这是一个很基本的问题,但一个面试官用一种很诡计的方式问我,我很无奈:( 我只知道一个界面的材料或理论定义,并在我工作的许多项目中实现了它。但我真的不明白这为什么有用,怎么有用。 接口方面有一点我也不懂。例如,我们使用 finally块中的。但我没有看到该类实现或继承接口()类,我的意思是。我想知道怎么才能直接调用方法名。同样,我不理解Dispose方法是如何工作的,因为我们需要用我们自己的实
我不知道POST和PUT方法的确切区别。有些人在网上说,当你们更新记录的时候,你们必须使用PUT方法而不是POST,我不知道这是真的吗?? 如果你的网站URL在POST方法1.www.example。com/user/{id}/update:-使用2.www.example。com/user/update:-使用后这是否正确??
这是我的线程: 它得到一个上限和下限以及一个在所有线程上共享的结果。 这是我的测试类: