यदि उपलब्ध हो तो जावा 7 एसडीके में कुछ एनआईओ 2 सुविधाओं का उपयोग करने में मुझे रूचि है (विशेष रूप से, file system watchers), हालांकि मैं जावा 7 के लिए अपनी कक्षाओं को संकलित नहीं करना चाहता हूं और जावा को बाहर नहीं करना चाहता 6 रनटाइम। अधिकतर क्योंकि मैं मैक ओएस एक्स के साथ संगतता बरकरार रखना चाहता हूं, और इसलिए भी क्योंकि मैं अपने उपयोगकर्ताओं को अपग्रेड करने के लिए मजबूर नहीं करना चाहता हूं।जावा 6 में जावा 7 एसडीके सुविधाओं का उपयोग 6
क्या यह संभव है? यह करने के लिए सबसे अच्छा तरीका क्या है? कोई लिंक या उदाहरण?
यहां कुछ तरीकों से मैं कल्पना कर सकता हूं: एक क्लास फ़ाइल को एक अलग कंपाइलर के साथ संकलित करना और इसे जावा संस्करण के आधार पर गतिशील रूप से लोड करना? या शायद प्रतिबिंब का उपयोग कर? या शायद जावा 6-संगत कक्षाएं उत्पन्न करने के लिए जावा 7 के लिए एक कंपाइलर सेटिंग है?
मैं ऐसे समाधान की तलाश में हूं जो एक बदसूरत गड़बड़ में नहीं बदलता :), तो आदर्श रूप से मैं एक इंटरफेस के दो कार्यान्वयन लिख सकता हूं, एक नई सुविधाओं का उपयोग करके और बिना किसी के, और फिर एक गतिशील रूप से चुनने के बजाय जगह पर प्रतिबिंबित कॉल करने के लिए।
चूंकि मुझे लगता है कि ये सुविधाएं SE7 में मौजूद होने लगती हैं, तो आपको लगता है कि आप एक एसई 6 संगतता मोड के साथ संकलित करने और उन्हें बनाए रखने में सक्षम होंगे? – KevinDTimm
मैं जो करना चाहता हूं वह केवल तब ही उनका उपयोग होता है जब प्रोग्राम को जावा 7 रनटाइम पर निष्पादित किया जाता है, और यदि नहीं तो अन्य व्यवहार पर वापस आ जाता है। ध्यान दें कि मैं जावा 7 एसडीके सुविधाओं के बारे में बात कर रहा हूं, न कि भाषा की विशेषताएं। –
क्षमा करें, दो कोड बेस आवश्यक होने जा रहे हैं (या, कम से कम, प्रत्येक वातावरण के लिए एक अलग फ़ाइल हैंडलिंग आधार है और प्रत्येक संस्करण के लिए अलग आउटपुट बनाएं क्योंकि संस्करण एक्स में संकलित कोड आमतौर पर किसी भी कम संख्या वाले संस्करण में काम नहीं करता है) – KevinDTimm