我的代码:静态内部类 - 怪异
public class MyTest {
public class StringSorter implements Comparator<String>
{
public StringSorter() {}
public int compare(String s1, String s2)
{
int l1 = s1.length();
int l2 = s2.length();
return l1-l2;
}
}
public static void main(String[] args) {
System.out.println("Hello, world!");
StringSorter sorter = new StringSorter();
Set<String> sets = new TreeSet<String>(sorter);
sets.add(new String("he"));
sets.add(new String("hel"));
sets.add(new String("he"));
sets.add(new String("hello"));
for (String s: sets)
{
System.out.println(s);
}
}
}
它会抱怨错误: “MyTest.java:41:非静态变量这不能从静态上下文中引用”
删除这一行将通过编译。但是,我们需要在'static main'方法中使用许多String对象。 String和StringSorter有什么区别?
如果我将StringSorter更改为静态内部类,它将被编译成OK。静态内部类如何修复编译错误?
你应该只用“他”而不是新的String(“他”) – 2011-05-05 10:08:02
为什么^^谢谢你的提醒? 。 – pengguang001 2011-05-05 10:16:22