我只是做了一个project...clean,然后自动地什么都不起作用。
Exception in thread "main" java.lang.NoClassDefFoundError: adventure/Main
Caused by: java.lang.ClassNotFoundException: adventure.Main
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native M
给这个:
Class<? extends Enum> enumClass = ...; // being passed in from a constructor
Enum e = Enum.valueOf(enumClass, aString); // produces a warning that looks like
未检查的未检查方法调用: valueOf(java.lang.Class,java.lang.String)在java.lang.Enum中应用于(java.lang.Class,java.lang.String)
我不想使用泛型,因为这是一个重大的变化
Test.java:
import java.util.ArrayList;
import java.util.Stack;
import java.util.Iterator;
class Wrapper<T> {
public T content;
public ArrayList<Wrapper> children;
}
public class Test {
public static void testing (Stack<Wrapper> stack) {
Wrapper test = stack.po
我有这本书中的Thinking in Java中的代码,其中布鲁斯指出了调用set()方法时的警告。守则如下:
package testPackage;
class GenericBase<T> {
private T element;
public void set(T arg) { arg = element; }
public T get() { return element; }
}
class Derived1<T> extends GenericBase<T> {}
class D
为了解释我的问题,请查看下面的java代码。
public interface Parent {
public void method();
}
public class Child implements Parent {
public void method() throws Exception {
}
}
正如你们都会说的,这将不会编译,因为Child类的方法声明了接口中没有指定的异常。运行时行为如何?我遇到过这样的情况,这种组合在运行时不会抛出异常,并且方法工作得很好。这是正确的行为吗(我的意思是这个带有异常子句控制的方法签名是在编译时完成的,而在运行时抛出子句
下面是我编写的第一个Java泛型:
public class MyClass {
public static <T> T castToAnotherType(Object param) {
T ret = null;
try {
ret = (T) param;
} catch (ClassCastException e) {
System.out.print("Exception inside castToAnotherType()");
}
以下操作并在控制台上打印42:
long l = (new Gson()).fromJson("42", Long.class);
System.out.printf("[%d]\n", l);
以下内容也是一样的工作和打印:
final Type TYPE = new TypeToken<Long>() {}.getType();
long l = (new Gson()).fromJson("42", TYPE);
…但是,下面的内容不起作用:
private static <T> T fromJSON(Stri
看看这段简单的Java代码:
final class A {
public static void main(String[] args) {
int x = 3;
boolean b;
switch(x) {
case 1:
b = true;
break;
default:
throw new RuntimeException();
}
System.out.p
我的代码是:
import java.util.*;
public class A {
public static void main(String[] args){
List<String> list = new ArrayList();
list.add("1"); //ok line 1
list.add(1); //error line 2
}
当我运行这段代码时,Java会给我一个错误,我知道为什么,但即使我只使用了第1行,编译器也会警告我。为什么我会收到这个警告?我不明白我的第一个例子和下面的代码有什么不同:
import
class HelloWorld {
public static void main(String[] args) {
int sum;
for (int i = 0; i < 10; i++) {
if (i == 9) {
sum = 10;
}
}
System.out.println(sum);
}
}
为什么这段代码会产生这个错误?
HelloWorld.java:9: error:变量和可能没有初始化System.o
我对锈病很陌生。我在Rust的编译器里找到了这段代码。
#[must_use]
pub struct IeeeFloat<S> {
/// Absolute significand value (including the integer bit).
sig: [Limb; 1],
/// The signed unbiased exponent of the value.
exp: ExpInt,
/// What kind of floating point number this is.
category: Category
文件名: B.java
public class B
{
public static void main(String[] args){}
}
public class A{}
java B.java无错误地运行
javac B.java提供了一个编译错误:class A needs to be declared in a file A.java
我知道java文件不能有多个公共类,但是当您使用java命令获得使用javac的代码编译错误时,为什么java文件能够运行而没有错误呢?
我有一个类ArraySort,其代码如下
private Comparable<Object> a[];
private int nElems;
public ArraySort(int length)
{
this.a = new Comparable[length];
this.nElems =0;
}
为什么Java会在这个语句中发出警告
this.a = new Comparable[length];
它发出以下警告
Type safety: The expression of type Comparable[] needs unchecked c
我有两个类Hello1和Hello,我在Hello1中调用类Hello1构造函数,但是当我尝试用命令编译Hello1时
javac Hello.java
我得到编译时错误:
Hello.java:6:cannot find the symbol
symbol: class Hello1
location: class Hello
Hello1=new Hello();
^
Hello.java:6:cannot find the symbol
symbol: class Hello1
location: class Hello
Hello1=new Hello();
^
当在这里查找“死码”线程时
我尝试了以下简单的java代码:
public class Test2
{
public static void main(String[] args)
{
int x = 0;
while(false)
{
x=4;
}
}
}
正确地抛出编译时错误
C:\Documents and Settings\user\Desktop\Test2.java:7: unreachable
stat
我有AdvancedDataGrid,我想在我看来访问dataProvider.getItemAt(i)函数。我没有收到任何错误或警告,而且代码正在编译,但是当我运行这个函数时,我得到了一个错误:Property getItemAt not found on mx.collections.HierarchicalCollectionView and there is no default value.,为什么我不能这样做呢?我看到了一些样本,人们正在使用这个功能。我就是这么叫它的:
var x:Object = _dg.dataProvider.getItemAt(i);
考虑下面的示例代码
/* The new Java 5 or later Generic code */
class TestInserter {
public static void main(String[] ar) {
List<Integer> myList = new ArrayList<Integer>();
myList.add(20);
myList.add(42);
Inserter ins = new Inserter();
ins.insert(myList);
java 7中的菱形运算符允许使用如下代码:
List<String> list = new LinkedList<>();
然而,在Java5/6中,我可以简单地编写:
List<String> list = new LinkedList();
我对类型擦除的理解是,它们是完全相同的。(泛型无论如何都会在运行时删除)。
为什么还要费心去买钻石呢?它允许哪些新功能/类型安全性?如果它没有产生任何新的功能,为什么他们会提到它作为一个功能呢?我对这个概念的理解有缺陷吗?
请看这段代码(摘自有效的Java书籍)
import java.util.concurrent.TimeUnit;
public class Main {
private static boolean stopReq;
public static void main(String[] args) throws InterruptedException {
Thread bgw = new Thread(new Runnable()
{
public void run(){
int i = 0;
while(!stopRe