2015-03-26 13 views
5

जावा में पैकेज आयात करने और यह पैकेज एक विशिष्ट नाम आयात करने में संभव है?जावा पैकेज आयात उपनाम

मेरे पास वर्तमान में एक कक्षा है, जो कुछ डीटीओ का बैकएंड और सर्विस पैकेज से उपयोग करती है। दोनों पैकेजों में डीटीओ का एक ही नाम है। और मुझे लगता है कि यह काफी पठनीय नहीं है:

com.backend.mypackage.a.b.c.d.UserDto userBackend = new com.backend.mypackage.a.b.c.d.UserDto(); 
com.service.mypackage.a.b.c.d.UserDto userService = new com.service.mypackage.a.b.c.d.UserDto(); 

mapper(userBackend, userService); 

यह एक छोटा सा उदाहरण है। कक्षा वास्तव में काफी जटिल है और इसमें बहुत अधिक कोड है।

क्या जावा में import com.backend.mypackage.a.b.c.d.UserDto as userDtoBackend जैसा कुछ है इसलिए मैं अपना स्रोत कोड छोटा कर सकता हूं?

+1

मुझे लगता है कि विभिन्न वर्गों, अलग-अलग नाम देने के लिए यह बहुत आसान होगा। ;) यानी कक्षाओं को अलिया करने के बजाय, उन्हें बदनाम करें। –

उत्तर

9

नहीं, आप "आयात एक्स के रूप में आयात नहीं कर सकते;" जावा में

क्या आप कर सकते हैं कक्षा का विस्तार करना, या इसके लिए एक रैपर वर्ग लिखना, और इसके बजाय इसे आयात करना।

import com.backend.mypackage.a.b.c.UserDto; 

public class ImportAlias { 
    static class UserDtoAlias extends com.backend.mypackage.a.b.c.d.UserDto { 
    } 

    public static void main(String[] args) { 
     UserDto userBackend = new UserDto(); 
     UserDtoAlias userService = new UserDtoAlias(); 

     mapper(userBackend, userService); 
    } 

    private static void mapper(UserDto userBackend, UserDtoAlias userService) { 
     // ... 
    } 
} 
+1

हां यह निश्चित रूप से एक तरीका है। लेकिन यदि आपके पास 100 से अधिक डीटीओ हैं तो यह प्रत्येक के लिए इस तरह के एक रैपर वर्ग को लागू करने के लिए उपयुक्त नहीं है। –

+2

यह सही है। लेकिन यदि आप एक ही विधि में 100 से अधिक डीटीओ का उपयोग करते हैं, तो आपको पहले सॉर्ट करने के लिए अन्य समस्याएं हो सकती हैं :) – folkol

+0

हां, वास्तव में ...: डी –

3

जावा में ऐसा करने का कोई तरीका नहीं है।

संबंधित मुद्दे