পাইথনে আপনি এটি করতে পারেন:
from a import b as c
জাভাতে আপনি এটি কীভাবে করবেন, কারণ আমার দুটি আমদানি সংঘর্ষের মধ্যে রয়েছে।
পাইথনে আপনি এটি করতে পারেন:
from a import b as c
জাভাতে আপনি এটি কীভাবে করবেন, কারণ আমার দুটি আমদানি সংঘর্ষের মধ্যে রয়েছে।
উত্তর:
জাভাতে কোনও আমদানি আলিয়াসিং ব্যবস্থা নেই। আপনি একই নামে দুটি ক্লাস আমদানি করতে পারবেন না এবং উভয়কেই অযোগ্য ঘোষণা করতে পারবেন না।
একটি শ্রেণি আমদানি করুন এবং অন্য শ্রেণীর জন্য সম্পূর্ণ যোগ্য নামটি ব্যবহার করুন, যেমন
import com.text.Formatter;
private Formatter textFormatter;
private com.json.Formatter jsonFormatter;
import [fully-qualified-name] as [ident]
। "হিসাবে" KEYWORD পাশাপাশি জাভা মাপসই বলে মনে হচ্ছে না, একটি বিকল্প আনুমানিক কি C # এর ব্যবহার: import [ident] = [fully-qualified-name]
।
অন্যান্য উত্তর যেমন ইতিমধ্যে বলেছে, জাভা এই বৈশিষ্ট্যটি সরবরাহ করে না।
এই বৈশিষ্ট্যটির বাস্তবায়নের জন্য একাধিকবার অনুরোধ করা হয়েছে, যেমন জেডিকে-4194542: শ্রেণীর নাম আলিয়াসিং বা জেডিকে -২২১78789৯: আমদানি করা ধরণের নামকরণের অনুমতি দেওয়ার জন্য আমদানি প্রসারিত করুন ।
মন্তব্য থেকে:
এটি অযৌক্তিক অনুরোধ নয়, যদিও খুব কমই প্রয়োজনীয়। মাঝেমধ্যে সম্পূর্ণরূপে যোগ্যতাসম্পন্ন নাম ব্যবহার করা বাছাই করা বোঝা নয় (যদি না গ্রন্থাগারটি সত্যিকারের একই নামগুলি ডান এবং বামে পুনরায় ব্যবহার না করে, যা খারাপ স্টাইল)।
কোনও ইভেন্টে, এটি কোনও ভাষা পরিবর্তনের জন্য মূল্য / পারফরম্যান্সের বারটি পাস করে না।
সুতরাং আমার ধারণা আমরা খুব শীঘ্রই জাভাতে এই বৈশিষ্ট্যটি দেখতে পাব না :- পি
গ্রোভির এই বৈশিষ্ট্যটি সম্ভবত উল্লেখযোগ্য :
import java.util.Calendar
import com.example.Calendar as MyCalendar
MyCalendar myCalendar = new MyCalendar()
import com.example.{Calendar => MyCalendar}
import com.example.Calendar as MyCalendar
।
class MyCalendar extends com.example.Calendar {}
? এটি আদর্শ বা সুন্দর নয়, তবে এটি বেশিরভাগ উদ্দেশ্যেই বলা উচিত, প্রতিচ্ছবিটি প্রতিবিম্বিত হবে। এমনকি প্রয়োজনে আপনি একটি মন্তব্য দিয়ে এটি প্রেন্ডিং করতে পারেন, পছন্দ করুন /* import com.example.Calendar as MyCalendar */
।
আজ আমি এই এলিয়াসিং বৈশিষ্ট্যটি সম্পর্কে ওপেনজেডিকে একটি জেপি খসড়া দায়ের করেছি। আমি আশা করি তারা এটি পুনর্বিবেচনা করবে।
আপনি যদি আগ্রহী হন তবে আপনি এখানে একটি জেইপি খসড়াটি পেতে পারেন: https://gist.github.com/cardil/b29a81efd64a09585076fe00e3d34de7
আসলে একটি শর্টকাট তৈরি করা সম্ভব যাতে আপনি নিজের কোডটিতে এই জাতীয় কিছু করে সংক্ষিপ্ত নামগুলি ব্যবহার করতে পারেন:
package com.mycompany.installer;
public abstract class ConfigurationReader {
private static class Implementation extends com.mycompany.installer.implementation.ConfigurationReader {}
public abstract String getLoaderVirtualClassPath();
public static QueryServiceConfigurationReader getInstance() {
return new Implementation();
}
}
এইভাবে আপনাকে একবারে দীর্ঘ নামটি নির্দিষ্ট করতে হবে এবং আপনি যতগুলি বিশেষ নামী ক্লাস চান তা করতে পারেন।
এই প্যাটার্নটি সম্পর্কে আমি আর একটি জিনিস পছন্দ করি তা হল আপনি বাস্তবায়নকারী শ্রেণীর নাম বিমূর্ত বেস শ্রেণীর মতো করতে পারেন, এবং এটি অন্য একটি নেমস্পেসে রেখে দিতে পারেন। যদিও এটি আমদানি / নামকরণের প্যাটার্নের সাথে সম্পর্কিত নয়।