【问题标题】:Anonymous types in java like in c# [closed]java中的匿名类型,如c#中的[关闭]
【发布时间】:2014-09-23 18:57:59
【问题描述】:

我正在研究 c# 中的匿名类型,并想知道 java 中是否存在类似的东西。 Java 在 c# 中有类似匿名类型的东西吗?

【问题讨论】:

  • 你有没有尝试谷歌一下? docs.oracle.com/javase/tutorial/java/javaOO/…
  • @BartFriederichs:这显示了同名的东西,但它与 C# 中的匿名类型关系不大。
  • @JonSkeet 同意,这就是为什么它是一个评论,他至少可以表现出一些研究工作。
  • @BartFriederichs:但您所展示的是,找到该页面的 Google 搜索没有回答问题。很容易有一些类似于 C# 的匿名类型,但在 Java 中具有完全不同的名称。

标签: java c# anonymous-types


【解决方案1】:

好吧,Java 中有 类型是匿名的,因为您不能通过名称来引用它们,但它们与 C# 中的匿名类型几乎没有共同之处。在 Java 中,它们是匿名的内部类,例如

Runnable x = new Runnable() {
    private int x = 10;

    @Override public void run() {
        System.out.println(x);
        x++;
    }
};
x.run(); // Prints 10
x.run(); // Prints 11

没有等同于 C# 的概念“创建一个类型,该类型具有一堆只读属性,其类型是从初始化表达式中推断出来的,并自动提供相等和方便的字符串转换实现”。 Java 中的匿名内部类通常用于轻松实现接口和扩展抽象类 - 您通常在 C# 中使用 lambda 表达式。

【讨论】:

  • @KirkWoll:嗯,他们是匿名的类型......我会编辑澄清一下。
  • @KirkWoll:啊,我不清楚你指的是“匿名内部阶级”的第二次。是的,已修复。
  • 哎呀,应该更精确。 :)
  • 感谢@JonSkeet 的回答...非常有帮助! ;)
【解决方案2】:

在 Java 中你有匿名类

【讨论】:

  • 但它们与 C# 中的匿名类型完全不同。
  • 我提供了备用封面;我以为你已经上床睡觉了:-)
  • 但是你这么早就开始了!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-04
  • 1970-01-01
  • 1970-01-01
  • 2015-12-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多