问题标签 [name-collision]

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 投票
5 回答
318 浏览

java - Java 7 接口和名称冲突

我正在编写代码,其中一个类实现了两个接口,这些接口恰好有两个具有相同名称的抽象方法和两个具有相同标识符的常量:

现在,我知道从 Java 7 开始,我不必担心名称冲突,就抽象方法而言(对吗??):我只是提供了一个合适的实现,我很好(所有共享的方法同名),所以我不会遇到类似多重继承的问题或“钻石”(我想这是我在使用 Java 8 时要处理的问题)。

但是,就常量而言,我注意到如果我实现了这两个接口并且不尝试访问 VALUE 字段,编译器不会抱怨。当我取消注释打印语句时,它会抱怨。

如何?这是正常行为吗?只有当我访问这些成员时我才会收到错误?

编辑我的意思是,当我尝试实现接口时,为什么编译器不警告我歧义?

0 投票
2 回答
1380 浏览

php - PHP 类具有来自特征的冲突构造函数定义

我有 3 个相互关联的文件:

类/General.class.php 包含:

和 class/User.class.php 基本上继承自 Database 类:

当我尝试使用这些类时:

我收到以下错误:

但是当我use generalFunctions;从 User 类中删除时,一切正常。

不幸的是,我不能在General课堂上使用函数User

如何解决这个问题呢?我想在类内部有General其他类可以使用的函数,特别是从其他类扩展的类,例如User类(从Database类扩展)

0 投票
1 回答
530 浏览

php - PHP:在命名空间内使用子命名空间类

假设我有一个顶级命名空间\Outer ,我有另一个子命名空间\Outer\Inner ,我有另一个顶级命名空间\Inner

\OuterInner这样使用的课程中

那么将使用哪个 Inner 呢?

或者

我很困惑,因为 php 说\顶级名称空间是可选的?

0 投票
1 回答
3615 浏览

kotlin - 无法在不同模块中创建具有相同名称的私有类

Kotlin 中关于可见性修饰符的官方文档说,标记的包级元素private仅在声明它们的模块中可见。

因此,在中A声明的类在Module1.kt中不可见Module2.kt。但是,如果我尝试添加到Module2.kt它自己的类中A,我会收到Redeclaration: A错误消息。

既然我不能进入Module2.ktModule1班级A,为什么不能A免费使用这个名字?

0 投票
1 回答
1573 浏览

java - Java name collision between variable and top-level package name

Triggered by this bug report AVRO-1814 I reduced the problem to this minimal example case in Java that simply shows the core of the effect.

Trying to compile this will give you

In AVRO the code is generated and it must try to avoid name collisions under the assumption people will sometimes choose unexpected names.

So assume in this example that

  1. The fully qualified class name in the 'test()' method is needed to avoid a collision.
  2. The variable 'nl' is just the name used in the schema definition.
  3. Generating a field like _nl__ and have getters and setters would be a change that will break backwards compatibility because the nl field has always been public.

Other than telling people "Just don't do that".

Is there a solution to avoid these conflicts?


Note that for the AVRO bug that triggered this question I found a workaround. Here I'm looking for the 'generic answer'.

0 投票
2 回答
1284 浏览

c++ - c++ 库命名空间和 C linux 函数之间的名称冲突

Linux<ncurses.h>头文件定义函数meta,C++ 元编程库meta将其所有代码放在全局命名空间meta中。

我如何在同一个 C++ 程序中同时使用两者(不一定是同一个 TU,但这会很好)?有没有办法解决名称冲突?

我可以想到两个脆弱的解决方法,但它们很容易被打破:

  • 解决方法一:

    编译但可能无法链接,因为这些ncurses符号应在全局命名空间中。

  • 解决方法 B:

    非常脆弱,因为它只有在meta库不假定其任何符号位于全局命名空间中时才会起作用。也就是说,如果库需要在内部消除符号的歧义并::meta::symbol_name用于该符号,则这种方法将失效。

0 投票
1 回答
7874 浏览

angular - Angular 2中模块导入的名称冲突 - 有没有办法防止它

我几乎造成了名称冲突,因为我创建了一个具有 common name 的类Message,它已经存在于 PrimeNG 中:

因为这是我的代码,所以我可以简单地将类重命名为其他任何名称(如MessageDTO)。但如果这是外部课程,我会遇到问题。

有没有办法用别名导入类,或者任何其他处理名称冲突的方法?在 Java 中,您可以使用完全限定名称而不是 import 来引用类,这看起来很难看,但通常是不可避免的。它在 Angular 2/TypeScript 中是什么样子的?

0 投票
1 回答
68 浏览

c# - 我应该如何处理命名空间和类名冲突

我的程序有一个模型 Foo 和一个命名空间,我也想称之为 Foo。它们对我来说都很有意义,但我想避免命名空间和类名冲突。

我应该改变哪一个?命名空间 App.Foo 还是模型 App.Models.Foo?

注意:我使用的是 mvvm 结构,所以我在命名空间 App.Foo 中有绑定代码,它在很多地方都使用 App.Models.Foo,因此会导致冲突,除非我每次都指定 Models.Foo(这很丑陋)。

0 投票
1 回答
10694 浏览

string - SQLite选择字符串相等,其中值与列名相同?

我有一个 SQLite (v3.8.7.1 2014-10-29) 数据库,其中包含一个包含本地安装软件包名称的表,包括版本详细信息、安装日期、软件主页 URL 等。

现在问题出现了,其中一个包(CPAN 模块“版本”)恰好与表列之一具有相同的名称,即“版本”。

在表“包”的最简单的测试用例中

姓名 版本
删除 2.2.5
代替 1.2.5
搜索 3.1
版本 0.2.3

但是当试图检索名为“版本”的包的条目时,

没有返回任何内容,因为它可能正在尝试将名称与“版本”列中的值进行比较。

有没有办法强制进行文字字符串比较,或者避免此类问题的唯一解决方案是将列从“版本”重命名为其他名称,例如“package_version”,希望它永远不会与可能的包名称字符串发生冲突?

0 投票
1 回答
80 浏览

ruby - 当存在名称冲突时,如何告诉 RubyMine 我正在使用什么类?

在 Padrino 项目中,Ruby 本身足够聪明,可以知道我引用的是我的Page模型而不是分页器的Page类。但是 RubyMine 迷路了,认为我正在处理分页,并坚持标记一些错误(因为new参数不同)。

在这些情况下我该怎么办?

在 PHPStorm 上,我习惯于在变量上方添加一个 PHPDoc,以告诉它变量是什么类型,但变量类型在这里甚至不是正确的问题......而且 RDoc 对于这种类型的东西来说似乎太基本了。我弄错了吗?

编辑:RDdoc 确实是基本的,但 YARDoc 很方便注释局部变量。但在这种情况下它没有用,因为这个问题确实是名称冲突。