错误
% javac StringTest.java
StringTest.java:4: variable errorSoon might not have been initialized
errorSoon[0] = "Error, why?";
码
public class StringTest {
public static void main(String[] args) {
String[] errorSoon;
errorSoon[0] = "Error, why?";
}
}
您需要初始化
errorSoon
,如错误消息所示,您仅对其进行了声明。
String[] errorSoon; // <--declared statement
String[] errorSoon = new String[100]; // <--initialized statement
您需要初始化数组,以便可以 在 开始设置索引 之前 为String
元素分配正确的内存存储。 __
如果 仅
声明数组(如您所做的那样),则不会为String
元素分配内存,而只会分配给的引用句柄errorSoon
,并且尝试在任何索引处初始化变量时都会引发错误。
另外,您也可以String
在花括号内初始化数组,{ }
这样,
String[] errorSoon = {"Hello", "World"};
相当于
String[] errorSoon = new String[2];
errorSoon[0] = "Hello";
errorSoon[1] = "World";
问题内容: 我无法按照以下代码初始化列表: 我遇到以下错误: 无法实例化类型 我该如何实例化? 问题答案: 如果你检查API,则会注意到它说: 作为一种手段,它无法实例化(不可能)。 如果你检查该链接,则会发现一些实现的: 所有已知的实施类: 那些可以实例化。使用它们的链接来了解有关它们的更多信息,即IE:知道哪个更适合你的需求。 三种最常用的可能是: 奖励: 你还可以使用,以更简单的方式使用值实
这是我第一次使用列表。我有一个名为Foods的类,我想用它做一个动态列表。我写了第一行,您可以看到下面,然后有很多方法刚刚弹出,我需要重写。我应该在每种方法中写些什么?或者这是制作列表实例的正确方法吗?
我有一个非常基本的问题。我需要如何为ArrayList键入parrameters才能在BlueJ中使用代码?我有一个方法如下。
问题内容: 你将如何在Java中初始化静态变量? 方法一:静态初始化器 方法二:实例初始化器(匿名子类)或其他方法? 各自的优缺点是什么? 这是说明两种方法的示例: 问题答案: 在这种情况下,实例初始化器只是语法糖,对吗?我不明白为什么你只需要一个额外的匿名类即可进行初始化。如果正在创建的类是最终的,那将是行不通的。 你也可以使用静态初始化程序创建不可变映射:
问题内容: 我正在初始化这样的数组: NetBeans在此行指出一个错误: 我该如何解决这个问题? 问题答案: 上面的信息不正确(语法错误)。这意味着你正在分配一个仅可容纳元素的数组。 如果要初始化数组,请尝试使用: 注意两个声明之间的区别。将新数组分配给声明的变量时,new必须使用。 即使你纠正了语法,访问仍然是不正确的(你只能访问,因为Java中的数组索引是基于0的)。访问]将抛出。
问题内容: 正如某些消息来源所说,Java实例初始化块在创建实例时或在构造函数之前立即执行。但是想象一下这种情况: 输出是(如预期的那样): 所以我的问题是-实例初始化块的正确定义是什么,因为它显然没有在构造函数之前执行,因为输出应该是 因为Main()构造函数是在调用super()之前调用的,所以Main初始化块应该是第一个。 问题答案: 不会。初始化块直接复制到构造函数中。显然那里也有一个隐式