Tôi đang gặp vấn đề với lớp trợ giúp tôi đang làm việc để dịch giữa 2 lớp cùng tên. Cả hai lớp đều nằm ngoài phạm vi kiểm soát của tôi, vì vậy tôi không thể đổi tên chúng một cách đơn giản.Cách tiếp cận tốt nhất để giải quyết các vụ va chạm tên lớp giữa các không gian tên
tùy chọn cơ bản của tôi đều liên quan đến tuyên bố không gian tên đầy đủ cho ít nhất một trong các loại:
import com.myco.second.long.package.namespace.MyObject;
public class MyObjectConvertor {
MyObject transform(com.myco.first.long.package.namespace.MyObject o) {}
}
Hoặc cách tiếp cận ngược lại:
import com.myco.first.long.package.namespace.MyObject;
public class MyObjectConvertor {
com.myco.second.long.package.namespace.MyObject transform(MyObject o) {}
}
Hoặc tuyên bố cả hai không gian tên, đối với một rõ ràng hơn mẫu:
public class MyObjectConvertor {
com.myco.second.long.package.namespace.MyObject
transform(com.myco.first.long.package.namespace.MyObject o) {}
}
Có giải pháp nào khác có thể dọn dẹp các chữ ký od? Tôi tự hỏi nếu một số loại C + + "typedef" phong cách giải pháp có thể là có thể?