问题标签 [name-clash]
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.
c++ - 名称与类方法冲突
所以我有一个定义如下的类:
然后我这样实现 close() 方法:
我的关闭中的“关闭(mHandle)”是在和AFAIK中定义的,它不在任何命名空间中。
为了解决方法,我将我的 close 重命名为其他东西,但必须有其他方法......
java - Java 名称冲突错误,尽管方法签名不同
为了好玩,我正在尝试实现一个“MultiMap”集合,就像 Apache Commons 库中已经存在的那样。我的“remove(K key, V value)”方法遇到了一个有趣的错误。编译器说存在名称冲突 - 它与“类型 Map 的删除(对象,对象)”具有相同的擦除。但是java.util.Map接口中没有定义这样的方法!只有一个“删除(对象)”方法 - 一个参数,而不是我的两个参数版本。更有趣的是,如果您通过将我的“remove(K key, V value)”替换为“remove(Object key, Object value)”来手动删除类型信息,它编译得很好。谁能解释这种现象?
我正在运行 Java 8,以防万一。
java - Java名称隐藏:艰难的方式
我有一个非常难以解决的名称隐藏问题。这是解释问题的简化版本:
有一个类:org.A
然后有一堂课net.foo.X
现在,这是继承自A
并想要调用的有问题的类net.foo.X.doSomething()
如您所见,这是不可能的。我不能使用简单名称X
,因为它被继承的类型隐藏。我不能使用完全限定名称net.foo.X
,因为net
它被继承的字段隐藏。
只有类B
在我的代码库中;类net.foo.X
和org.A
是库类,所以我不能改变它们!
我唯一的解决方案是这样的:我可以调用另一个类,然后调用X.doSomething()
; 但是这个类只会因为名字冲突而存在,看起来很乱!有没有我可以直接调用X.doSomething()
的解决方案B.doSomething()
?
在允许指定全局命名空间的语言中,例如,global::
在 C# 或::
C++ 中,我可以简单地net
使用这个全局前缀作为前缀,但 Java 不允许这样做。
swift - Swift 中的命名空间
我正在编写一个扩展来String
返回它的反转版本:
代码工作正常,但我想调用这个方法reverse
,而不是rev
。如果我这样做,我会收到一个错误,因为方法名称与通用函数冲突reverse
:
有没有办法指定我的意思是reverse
方法体内的泛型函数?
java - 覆盖泛型类的方法时的名称冲突
我试图理解使用以下代码得到的名称冲突错误:
错误信息:
错误:名称冲突:
doSomething(Number,Map<String,JComponent>)
inBar
和doSomething(Number,Map<String,JComponent>)
inFoo
具有相同的擦除,但都不会覆盖另一个
我知道我可以通过从 中删除泛型类型Foo
或将Bar
声明更改为class Bar extends Foo<Integer>
;来修复它。我想知道的是为什么在特定情况下会发生此错误,但是如果我comps
从每个方法中删除参数就会消失。我已经阅读了有关类型擦除的一些内容,但在我看来,无论是否使用泛型,这两种方法都应该具有相同的擦除,因此在任何一种情况下都是有效的覆盖。(请注意,我什至还没有在任何地方使用过泛型参数,这就是我如此惊讶的原因。)
我知道我之前已经向父类添加了泛型类型,但只收到关于子类的警告,而不是错误。谁能解释这种情况?
c++ - 成员函数与类名冲突
我正在用 wxWidgets 编写一个国际象棋程序。有一次,我有一个 的子类wxGLCanvas
,它使用了Move
我写的一个类。不幸的是,似乎有一个方法wxWindowBase::Move()
,所以我所有的表单语句list<Move> li
都不会编译。
有什么好的方法可以解决这个问题吗?我已经尝试过list< ::Move> li
,这确实解决了问题,但它很糟糕,我必须在任何地方进行更改。与命名空间冲突不同,使用声明在这里似乎没有帮助。
c - 我是否以错误的方式使用了预处理器?
请注意:这不是家庭作业。该程序不完整且功能不完整,但至少应该可以编译。
我正在使用 C Primer Plus Book 进行自学过程(简而言之,我是 C 新手)。我几乎已经读完了整本书,并且一直在完成每一章的练习,有时我会偏离正题。这是其中之一。我遇到了一个特殊的问题,我很确定与预处理器指令有关。
我正在使用 MinGW(Windows 的 gcc),它报告:
gcc 报告的错误是:
nanfunct.c: 'keywords' 的多重定义
nanite.c: 首先在这里定义
等等...等等...更多错误...
我很确定这是由包含多个头文件引起的,但更重要的是我创建然后包含的头文件导致了这个问题。
这个问题似乎与指向字符数组(或基于字符串的数组)的指针有关,它们在编译时重复,即使我说只有在尚未预定义的情况下才定义它。
例如:
我正在使用三个文件:
nanite.c -> main()
nanfunct.c 的源文件 -> 函数
nanproto.h 的源文件 -> nanite.c 和 nanfunct.c 的头文件
在nanite.c和nanfunct.c我#include nanproto.h
pastebin 上发布的源文件:
nanproto.h -> nanite.c和nanfunct.c的头文件nanite.c和nanfunct.c -> 源文件
为什么会这样?我认为#ifndef应该防止这样的事情发生?
clojure - 一起使用 Incanter 和 Clojure Soup
我正在学习 Clojure - 这很有趣!我正在尝试在同一个文件中使用 Incanter 和 Clojure Soup:
我收到以下错误:
我想我明白为什么,但我该如何解决这个问题?欣赏这个网站和上面的所有大师!
谢谢。
python - Django 项目中的相同型号名称
我有一个包含两个应用程序的项目:
- 帐户,
- 类。
在帐户应用程序中,我使用 Django 的 Group 模型(用于帐户权限),而在 classes 应用程序中,我有另一个名为 Group 的模型(但它应该被解释为一组学生)。
我的 url.py 看起来像:
但它没有按预期工作。/api 页面如下所示:
因此,两者都针对相同的地址,这不是我想要的。管理页面运行良好(我可以编辑帐户的组和班级的组)。
有什么建议么?
编辑:
如下更改 url.py 的行之一(如以下答案之一所示):
将 /api 页面更改为:
所以@argaen 解决方案通常不是这种情况的解决方案。
java - 名称冲突,即使我没有同时使用这两个接口
我收到这条烦人的消息:
错误:(8、8)java:名称冲突:org.springframework.data.repository.CrudRepository 中的保存(java.lang.Iterable)和 org.springframework.data.jpa.repository 中的保存(java.lang.Iterable)。 JpaRepository 具有相同的擦除,但都不会覆盖另一个
我没有CrudRepository
在我的代码中使用,所以我怎么会收到这个奇怪的消息?我该如何解决?