小编ars*_*jii的帖子

内部类的奇怪编译错误

以下代码按预期编译:

class A {
    class B {}
    class C extends B {}
}
Run Code Online (Sandbox Code Playgroud)

但是,如果我们有类B扩展类A,我们会收到编译错误:

class A {
    class B extends A {}
    class C extends B {}  // <-- Error here
}
Run Code Online (Sandbox Code Playgroud)
No enclosing instance of type A is available due to some intermediate 
constructor invocation.

这里发生了什么?为什么扩展会A改变什么?

编辑:显然,这在Java 7中编译得很好.我将理解为什么它不能在较旧的Java版本中编译以及Java 7中的更改以允许它.


也可以看看:

java compiler-errors inner-classes

4
推荐指数
1
解决办法
141
查看次数

Java打印整个数组,带有","符号?

System.out.print("Please select a game: ");
for (String s : gamesArray) {       
    System.out.print(s + ", "); 
}
Run Code Online (Sandbox Code Playgroud)

输出:

Please select a game: spin, tof, Press any key to exit...

我除外的输出:

Please select a game: spin, tof
Press any key to exit...

为什么在最后一个数组项后添加另一个','?我该如何预防呢?

java arrays

4
推荐指数
2
解决办法
258
查看次数

4
推荐指数
2
解决办法
110
查看次数

Python:使用地图功能

我在使用该map功能时遇到了麻烦。当我要打印创建的列表时,解释器显示指针:

>>> squares = map(lambda x: x**2, range(10))
>>> print(squares)
<map object at 0x0000000002A086A0>
Run Code Online (Sandbox Code Playgroud)

问题是什么?

python map

4
推荐指数
1
解决办法
1923
查看次数

Java:除最后一部分外,获取整个URL的最简单方法是什么?

考虑网址是

http://www.google.com/a/b/myendpoint

我想要的只是以下内容

http://www.google.com/a/b/

一种方法是拆分String url并加入除最后一个组件之外的所有组件.

我在想是否有更好的方法?

java

4
推荐指数
1
解决办法
157
查看次数

为什么containsKey()的Map只调用hashCode()?

我读了接口Map的JavaDoc,它说:

Collections Framework接口中的许多方法都是根据equals方法定义的.例如,对于规范containsKey(Object key)法说:"返回true当且仅当此映射包含一个键的映射关系k,使得 (key==null ? k==null : key.equals(k))".不应将此规范解释为暗示Map.containsKey使用非null参数调用key将导致key.equals(k)对任何键调用k.实现可以自由地实现优化,从而equals避免调用,例如,通过首先比较两个密钥的哈希码.(该Object.hashCode()规范保证具有不等哈希码的两个对象不能相等.)

我的理解是在containsKey()调用时,都会调用hashCode()和equals(),因此我编写了自己的代码来测试它.

HappyDay类将作为键存储在HashMap中,我重写hashCode()和equals()方法,并添加System.out.println("invoking hashCode()" + this.happyHour);System.out.println("invoking equals()");检查方法是否被调用.

public class HappyDay {

    private final int happyHour;

    public HappyDay(int hh) {
        this.happyHour = hh;
    }

    public int getHappyHour() {
        return this.happyHour;
    }

    @Override
    public boolean equals(Object o) {
        System.out.println("invoking equals()");
        if (o == null) {return false;}

        if (o == …
Run Code Online (Sandbox Code Playgroud)

java equals hashmap

4
推荐指数
2
解决办法
1504
查看次数

Python按开始和结束字符拆分字符串

假设你有一个这样的字符串:"(hello) (yes) (yo diddly)".

你想要一个这样的列表: ["hello", "yes", "yo diddly"]

你会如何用Python做到这一点?

python string list

3
推荐指数
2
解决办法
6215
查看次数

将Integer对象添加到hashSet

请考虑以下代码:

6.  Set<Integer> set = new HashSet<Integer>();
7.  Integer i1 = 45;
8.  Integer i2 = 46;
9.  set.add(i1);
10. set.add(i1);
11. set.add(i2); System.out.print(set.size() + " ");
12. set.remove(i1); System.out.print(set.size() + " ");
13. i2 = 47;
14. set.remove(i2); System.out.print(set.size() + " ");
15. System.out.println(set.contains(i2));
Run Code Online (Sandbox Code Playgroud)

代码输出:

2 1 1 false

在第14行之后我假设尺寸会是,0但确实如此1.我想i2在第13行将一个新对象添加到集合中,所以我在第15行测试了它,但它返回false(即i2集合中没有),为什么会这样?

java set hashset

3
推荐指数
1
解决办法
2万
查看次数

了解浮点和无限循环

我有这个代码:

while (x < 10.0) {
    x += y;
}
Run Code Online (Sandbox Code Playgroud)

如果xy是浮点数,显然如果你添加它们,循环将无限继续.我不明白它怎么会通过10.似乎不可能不通过十,但它不是根据我的教科书.

这是为什么?是因为浮点数会发生舍入吗?或者我错过了什么?

编辑:顺便说一句x,y是严格积极的

java loops infinite

3
推荐指数
1
解决办法
115
查看次数

没有初始化与初始化相同,为null吗?

如果你声明一个这样的对象:

Object x;
Run Code Online (Sandbox Code Playgroud)

它初始化为null

例如,会(x == null)true

java

3
推荐指数
1
解决办法
132
查看次数