পরিস্থিতি 1: সাধারণ মামলা
যদি এটির নিশ্চয়তা থাকে যে আপনার অবজেক্টটি একটি Integer
, তবে এটি সহজ উপায়:
int x = (Integer)yourObject;
পরিস্থিতি 2: যে কোনও সংখ্যক বস্তু
জাভা Integer
, Long
, BigInteger
ইত্যাদি সব বাস্তবায়ন Number
ইন্টারফেস যা একটি পদ্ধতি নাম দিয়েছে intValue
। সংখ্যাসূচক দিক সহ যে কোনও কাস্টম প্রকারেরও প্রয়োগ করা উচিত Number
(উদাহরণস্বরূপ Age implements Number
:)। তাই আপনি পারেন:
int x = ((Number)yourObject).intValue();
দৃশ্য 3: সংখ্যার পাঠ্যকে পার্স করুন
আপনি যখন কমান্ড লাইন (বা পাঠ্য ক্ষেত্র ইত্যাদি) থেকে ব্যবহারকারী ইনপুট গ্রহণ করেন আপনি এটি হিসাবে পাবেন String
। এই ক্ষেত্রে আপনি ব্যবহার করতে পারেন Integer.parseInt(String string)
:
String input = someBuffer.readLine();
int x = Integer.parseInt(input);
আপনি যদি ইনপুট হিসাবে পান তবে আপনি Object
এটি ব্যবহার করতে পারেন (String)input
বা এটিতে অন্য পাঠ্য টাইপ থাকতে পারে input.toString()
,:
int x = Integer.parseInt(input.toString());
দৃশ্য 4: পরিচয় হ্যাশ
জাভাতে কোনও পয়েন্টার নেই। তবে Object
এর জন্য একটি পয়েন্টারের মতো ডিফল্ট বাস্তবায়ন রয়েছে hashCode()
, যা সরাসরি মাধ্যমে উপলব্ধ System.identityHashCode(Object o)
। তাই আপনি পারেন:
int x = System.identityHashCode(yourObject);
মনে রাখবেন যে, এই হল না একটি বাস্তব পয়েন্টার মান। বস্তুর মেমরি ঠিকানা JVM দ্বারা তাদের পরিচয় হ্যাশ রাখার সময় পরিবর্তন করা যেতে পারে। এছাড়াও, দুটি জীবন্ত বস্তুর একই পরিচয় হ্যাশ থাকতে পারে।
আপনি এটি ব্যবহার করতে পারেন object.hashCode()
তবে এটি টাইপ নির্দিষ্ট হতে পারে।
দৃশ্য 5: অনন্য সূচক
একই ক্ষেত্রে আপনার প্রতিটি বস্তুর জন্য একটি অনন্য সূচক প্রয়োজন, যেমন একটি ডাটাবেস টেবিলের স্বয়ংক্রিয় বর্ধিত আইডি মানগুলি (এবং সনাক্তকরণের হ্যাশ থেকে পৃথক যা অনন্য নয়)। এর জন্য একটি সাধারণ নমুনা বাস্তবায়ন:
class ObjectIndexer {
private int index = 0;
private Map<Object, Integer> map = new WeakHashMap<>();
public int indexFor(Object object) {
if (map.containsKey(object)) {
return map.get(object);
} else {
index++;
map.put(object, index);
return index;
}
}
}
ব্যবহার:
ObjectIndexer indexer = new ObjectIndexer();
int x = indexer.indexFor(yourObject); // 1
int y = indexer.indexFor(new Object()); // 2
int z = indexer.indexFor(yourObject); // 1
পরিস্থিতি 6: এনাম সদস্য
জাভা এনামে সদস্যরা পূর্ণসংখ্যক নয় তবে পূর্ণ বৈশিষ্ট্যযুক্ত বস্তু হয় (উদাহরণস্বরূপ সি / সি ++ এর বিপরীতে)। সম্ভবত কোনও এনাম অবজেক্টে রূপান্তর করার প্রয়োজন নেই int
, তবে জাভা স্বয়ংক্রিয়ভাবে প্রতিটি এনাম সদস্যের সাথে একটি সূচক নম্বর যুক্ত করে। এই সূচকটি মাধ্যমে প্রবেশ করা যেতে পারে Enum.ordinal()
, উদাহরণস্বরূপ:
enum Foo { BAR, BAZ, QUX }
// ...
Object baz = Foo.BAZ;
int index = ((Enum)baz).ordinal(); // 1
Object
না হয় তবেInteger
আমি নিশ্চিত নই যে আপনি আপনার অভিনেতার কাছ থেকে কী প্রত্যাশা করছেন।