小编Mar*_*ius的帖子

Java - Class方法可以看到同类参数的私有字段

我遇到了一个相当奇怪的行为,并且不确定这是Java问题还是Eclipse问题.

请使用以下代码:

class Foo {
  private String text;

  public void doStuff(Foo f) {
    System.out.println(f.text);
  }
}
Run Code Online (Sandbox Code Playgroud)

这里的问题是,为什么f.text可以访问?这是一个私有领域,所以根据我的逻辑,它不应该,但IDE似乎认为它是.

java methods private access-modifiers

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

为什么受约束的返回类型需要显式转换?

为什么像这样的方法需要显式转换返回类型?

    public T Test<T> ()
        where T : Response
    {
        var ret = new Response ();

        return ret; // Explicit cast needed here
    }
Run Code Online (Sandbox Code Playgroud)

该约束明确指出 T 是 Response 或其子代,因此返回类型多态性应该允许无需强制转换,或者我是这么认为的。

添加as T允许编译通过。

c# generics polymorphism

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

标签 统计

access-modifiers ×1

c# ×1

generics ×1

java ×1

methods ×1

polymorphism ×1

private ×1