আসলে সেখানে তন্ন তন্ন হয় সুত্র কিংবা আউট মধ্যে শব্দ সমতুল্য জাভা ভাষা হিসেবে যতদূর আমি জানি। তবে আমি কেবল জাভাতে একটি সি # কোড রূপান্তর করেছি যা প্যারামিটার ব্যবহার করে এবং আমি সবেমাত্র কী করেছি তা পরামর্শ দেব will আপনার যেকোন বস্তু একটি মোড়কের ক্লাসে আবৃত করা উচিত এবং মোড়কের অবজেক্টের উদাহরণে মোড়ানো মানগুলি নিম্নরূপে পাস করুন;
র্যাপার ব্যবহারের জন্য একটি সাধারণ উদাহরণ
এখানে র্যাপার ক্লাস ;
public class Wrapper {
public Object ref1; // use this as ref
public Object ref2; // use this as out
public Wrapper(Object ref1) {
this.ref1 = ref1;
}
}
এবং এখানে পরীক্ষার কোডটি রয়েছে;
public class Test {
public static void main(String[] args) {
String abc = "abc";
changeString(abc);
System.out.println("Initial object: " + abc); //wont print "def"
Wrapper w = new Wrapper(abc);
changeStringWithWrapper(w);
System.out.println("Updated object: " + w.ref1);
System.out.println("Out object: " + w.ref2);
}
// This won't work
public static void changeString(String str) {
str = "def";
}
// This will work
public static void changeStringWithWrapper(Wrapper w) {
w.ref1 = "def";
w.ref2 = "And this should be used as out!";
}
}
একটি বাস্তব বিশ্বের উদাহরণ
প্যারামিটার ব্যবহার করে এসি # .NET পদ্ধতি
এখানে একটি হল C # এর .NET পদ্ধতি যা ব্যবহার করছে আউট শব্দ;
public bool Contains(T value)
{
BinaryTreeNode<T> parent;
return FindWithParent(value, out parent) != null;
}
private BinaryTreeNode<T> FindWithParent(T value, out BinaryTreeNode<T> parent)
{
BinaryTreeNode<T> current = _head;
parent = null;
while(current != null)
{
int result = current.CompareTo(value);
if (result > 0)
{
parent = current;
current = current.Left;
}
else if (result < 0)
{
parent = current;
current = current.Right;
}
else
{
break;
}
}
return current;
}
আউট প্যারামিটারটি ব্যবহার করছে এমন সি # কোডের জাভা সমতুল্য
এবং জাভা সমতুল্য এই পদ্ধতিটির মোড়কের সাহায্যে নিম্নরূপ:
public boolean contains(T value) {
BinaryTreeNodeGeneration<T> result = findWithParent(value);
return (result != null);
}
private BinaryTreeNodeGeneration<T> findWithParent(T value) {
BinaryTreeNode<T> current = head;
BinaryTreeNode<T> parent = null;
BinaryTreeNodeGeneration<T> resultGeneration = new BinaryTreeNodeGeneration<T>();
resultGeneration.setParentNode(null);
while(current != null) {
int result = current.compareTo(value);
if(result >0) {
parent = current;
current = current.left;
} else if(result < 0) {
parent = current;
current = current.right;
} else {
break;
}
}
resultGeneration.setChildNode(current);
resultGeneration.setParentNode(parent);
return resultGeneration;
}
মোড়ক ক্লাস
এবং এই জাভা কোডে ব্যবহৃত র্যাপার ক্লাসটি নীচের মতো রয়েছে;
public class BinaryTreeNodeGeneration<TNode extends Comparable<TNode>> {
private BinaryTreeNode<TNode> parentNode;
private BinaryTreeNode<TNode> childNode;
public BinaryTreeNodeGeneration() {
this.parentNode = null;
this.childNode = null;
}
public BinaryTreeNode<TNode> getParentNode() {
return parentNode;
}
public void setParentNode(BinaryTreeNode<TNode> parentNode) {
this.parentNode = parentNode;
}
public BinaryTreeNode<TNode> getChildNode() {
return childNode;
}
public void setChildNode(BinaryTreeNode<TNode> childNode) {
this.childNode = childNode;
}
}