问题标签 [local-class]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
63 浏览

java - 本地类中的访问控制修饰符 - 为什么它们不起作用?

我在一个方法中声明了一个本地类,其字段被声明为私有。但是,我仍然可以直接从封闭方法的主体中访问它们——这是为什么呢?

作为旁注,我已将匿名类中的所有字段声明为私有,但这样做实际上有什么好处吗?有什么东西可以访问它们吗?

编辑:代码示例

0 投票
1 回答
518 浏览

java - 将属性添加到任意 java bean

我想编写一个函数,给定一个任意 java bean 作为参数,返回一个对象,该对象是该 bean 的副本,但属于该 bean 类型的包含附加属性的匿名子类。让我用一个到目前为止的例子来说明:

Foo.java:

Garply.java:

这似乎很愚蠢,因为我永远无法真正调用getQux(),但我使用的工具使用反射来成功找到qux属性并使用它做我想做的事。

我的问题是我不想fooWithQux()为我希望能够将qux属性添加到的每种类型都有单独的函数。理想情况下,我会有类似的东西beanWithQux()接受任意类型的对象。我想我可以通过以下方式完成这项工作:

这就是我卡住的地方。我不知道将给定对象的所有属性复制到我的新对象中。有人有想法吗?理想情况下,我可以使用 lombok 做一些事情(我控制Foo类,并且可以添加注释,@Builder如果需要),而不是自己编写一堆反射魔法。

谢谢!

0 投票
2 回答
1354 浏览

c++ - 为什么允许泛型 lambdas 而不允许使用模板化方法的嵌套结构?

据我了解 - 通用 lambda 被转换为带有模板的局部范围结构的对象operator()。这使得通用 lambda 工具非常强大且易于使用。另一方面,当结构具有模板化成员时,可以创建嵌套到函数中的结构,例如:

或自行模板化:

编译器似乎在编译它时有问题:

我认为问题更多在于 c++ 标准而不是编译器错误。允许 lambda 具有模板化成员而不是本地结构的原因是什么?

我找到了这个 qustion,但我认为答案有点过时(我认为即使对于 c++11 也是如此)。

0 投票
0 回答
109 浏览

java - 创建本地课程是一种好习惯吗?

大多数时候,我看到程序员说本地类由于某些原因不好,并说与其在方法中创建类,不如创建新的 java 文件并使用它们。我的问题是,假设如果我想为每个类创建单独的文件,最后将是 100 个 java 文件,其中超过 60 个的使用只是一种方法。怎么办?单独创建这些类是否更好?有时会发生在一种方法中,我们有一些变量必须由相同的语句初始化。在封闭类中创建私有函数并在方法中使用它还是在方法中创建本地类好?

问候

0 投票
4 回答
696 浏览

java - 为什么即使外部类对象被破坏,内部类实例也会在内存中保留?

请考虑以下两个类:

一个学生

b.) 学生演示

根据oracle java 文档

为了创建内部类的实例,首先我们必须创建封闭类的实例,然后我们可以创建内部类的实例。

像其他成员(实例变量和实例方法)一样,内部类也是外部类实例的成员。在StudentDemo.java 的第 16 行中,即使负责创建Address对象的对象在内存中不存在,我仍然能够打印地址的值。

我的问题是:为什么 Address 对象会保留在内存中,并且一旦obj设置为 null就不会自动销毁?

输出:

0 投票
4 回答
113 浏览

java - 有什么叫做本地静态内部类的东西吗?

我只是在尝试内部类,并遇到了拥有本地但静态内部类的想法……好吧,我在静态方法中创建了一个内部类……就这么简单……这是我做的例子

这不会给出任何编译错误。

我知道如何访问静态方法 m。但我想知道是否有办法从外部类访问本地类LocalStatic 。据我所知,我们不能访问方法内部的东西,对吧?因此,我无法从外部类外部访问LocalStatic或该本地类中的任何方法或属性,只是想确保..

0 投票
1 回答
387 浏览

c++ - 如何在本地类中定义友元函数运算符>>?

试图>>在本地类中重载输入运算符。我试图在friend istream &operator >>里面定义class Data

它显示错误:

0 投票
3 回答
1538 浏览

c++ - 我们不能在本地类中定义友元函数的原因是什么?

我有以下 c++ 代码段。main()在函数内部声明了一个类。

我们不能在本地类中定义友元函数的原因是什么?

0 投票
0 回答
38 浏览

java - 继承本地类

所以今天早上我在处理本地类时遇到了关于范围的奇怪继承行为。

类 Bar 看起来像这样:

所以我期望这样的输出:

但最终得到:

String 声明的私有前缀不应该阻止子类访问变量吗?

但是,我继续进行并删除了字符串声明,这一次以我之前的预期输出结束。

那么为什么在直接父类中将同名变量声明为private时,总是获取不到类Bar的变量呢?

感谢您提前提供任何帮助。

0 投票
2 回答
109 浏览

java - 带有 Lambda 表达式的本地类

正如我测试的那样,下面的代码执行没有任何问题。但我无法理解其中的逻辑。有人可以解释一下吗?

在上面的示例代码中,我有以下问题。

  1. foreach 方法始终采用消费者对象。在这里 printCity 方法不是带参数的方法。它仍然有效。如何?
  2. printCity 方法在这里不是静态方法。City 本身如何调用实例方法?