0

The same object is defined twice in different packages:

packageX/Object1.java

and

packageY/Object1.java

[Background: packageX is part of a webclient service, getting objects from a server. packageY is a java client using the objects retrieved by this webclient service].

A function from packageX returns Object1, and the compiler throws an error when I try to use this object as an Object1 from packageY (which I can understand).

=> Is mapping packageX/Object1.java to packageY/Object1.java my only option? Or do I miss something?

4

2 回答 2

1

你似乎错过了什么。如果您在同一个包中或如果您是类,Java 允许您使用类短名称的“速记”来简化程序员的工作import,但每个类的真实名称是其完全限定的类名。在您的情况下,您没有Object1定义两次,您有一个名为的类packageX.Object1和另一个名为packageY.Object1. 如果您尝试在同一范围内使用两者,则必须为至少一个变量指定整个类名:

import packageX.Object1;
...
private Object1 foo; // this is a packageX.Object1;
private packageY.Object1 bar;

除了在它们之间进行转换之外,没有办法从一个“映射”到另一个,就像在任何其他两个没有相似名称的类之间进行转换一样。

最有可能的是,您应该在服务器端和客户端使用相同的实现。您在谈论“Web 服务”,但这通常只有在您使用 Java 序列化而不是 JSON 时才会出现问题。

于 2013-08-13T16:30:44.553 回答
0

您需要确保使用从 web 服务返回的同一类的对象。即使两个类具有相同的结构,编译器也会抱怨,因为完整的类名也包含包名。

于 2013-08-13T16:25:19.963 回答