मिटाने के कारण आप नहीं कर सकते हैं। सबसे अच्छा आप कर सकते हैं टुपल क्लास में स्टोर जिसे आप टुपल के लिए "java.lang.Class" फ़ील्ड सदस्य में रखने के लिए योजना बनाते हैं। फिर आप यह सुनिश्चित करने के लिए उन क्षेत्रों की तुलना कर सकते हैं कि ट्यूपल क्लास एक ही प्रकार का हो रहा है।
इसके अलावा इस सूत्र देखें: What is the equivalent of the C++ Pair<L,R> in Java?
अगर आप अपने वर्ग के बारे में अधिक पोस्ट यह मदद मिलेगी। मैं अनचेक कास्ट सोच रहा हूं और आपके बराबर फ़ील्ड की संख्या का मतलब है कि यह ट्यूपल < ई, एफ > नहीं होना चाहिए?
संपादित करें: यहां एक उपयोगी जोड़ी कक्षा है जो मैं नियमित रूप से उपयोग करता हूं (यदि आवश्यक हो तो आप अपने ट्यूपल क्लास को अनुकूलित कर सकते हैं)। नोट, इस वर्ग के अन्य लोगों द्वारा सुझावों के समान, बस निहित सदस्यों को समानता के प्रश्न का निर्णय लेने देता है। आपका उपयोग मामला यह निर्धारित करना चाहिए कि समानता वास्तव में निहित सदस्यों के प्रकार पर आधारित है या नहीं।
/**
* Adapted from http://forums.sun.com/thread.jspa?threadID=5132045
*
*
* @author Tim Harsch
*
* @param <L>
* @param <R>
*/
public class Pair<L, R> {
private final L left;
private final R right;
public R getRight() {
return right;
} // end getter
public L getLeft() {
return left;
} // end getter
public Pair(final L left, final R right) {
this.left = left;
this.right = right;
} // end constructor
public static <A, B> Pair<A, B> create(A left, B right) {
return new Pair<A, B>(left, right);
} // end factory method
@Override
public final boolean equals(Object o) {
if (!(o instanceof Pair<?,?>))
return false;
final Pair<?, ?> other = (Pair<?, ?>) o;
return equal(getLeft(), other.getLeft()) && equal(getRight(), other.getRight());
} // end method
public static final boolean equal(Object o1, Object o2) {
if (o1 == null) {
return o2 == null;
}
return o1.equals(o2);
} // end method
@Override
public int hashCode() {
int hLeft = getLeft() == null ? 0 : getLeft().hashCode();
int hRight = getRight() == null ? 0 : getRight().hashCode();
return hLeft + (37 * hRight);
} // end method
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append('<');
if(left == null) {
sb.append("null");
} else {
sb.append(left.toString());
} // end if
sb.append(',');
if(right == null) {
sb.append("null");
} else {
sb.append(right.toString());
} // end if
sb.append('>');
return sb.toString();
} // end method
} // end class
बीटीडब्ल्यू इस तर्क का अर्थ यह नहीं है कि "ए", "ए" और "ए", "बी" बराबर हैं? क्या यह लिखना आसान नहीं होगा "अगर a0 = a0 और a1 = a1, या a0 = a1 और a1 = a0 ..." –
यदि आप अपने a0 और a1 को शून्य होने की अनुमति देते हैं, तो सुनिश्चित करें कि आप चेक जोड़ते हैं इसके लिए। –