相关疑难解决方法(0)

Java有像C#的ref和out关键字吗?

类似于以下内容:

参考示例:

void changeString(ref String str) {
    str = "def";
}

void main() {
    String abc = "abc";
    changeString(ref abc);
    System.out.println(abc); //prints "def"
}
Run Code Online (Sandbox Code Playgroud)

例子:

void changeString(out String str) {
    str = "def";
}

void main() {
    String abc;
    changeString(out abc);
    System.out.println(abc); //prints "def"
}
Run Code Online (Sandbox Code Playgroud)

c# java

106
推荐指数
5
解决办法
10万
查看次数

在单独的方法中初始化Java对象:为什么这不起作用

这是我无法分辨的事情我很惊讶它不会起作用,但无论如何我找到这个案例的解释很有意思.想象一下,我们有一个对象:

SomeClass someClass = null;
Run Code Online (Sandbox Code Playgroud)

并且该方法将此对象作为参数来初始化它:

public void initialize(SomeClass someClass) {
  someClass = new SomeClass();
}
Run Code Online (Sandbox Code Playgroud)

然后我们打电话:

initialize(someClass);
System.out.println("" + someClass);
Run Code Online (Sandbox Code Playgroud)

它将打印:

null
Run Code Online (Sandbox Code Playgroud)

谢谢你的回答!

java methods constructor initialization

8
推荐指数
1
解决办法
4230
查看次数

在android中传递引用作为参数

我是java/android的新手.我是ac/c ++开发人员.我可以知道如何在android中传递引用作为参数.示例c示例代码如下所示

void main()
{
  int no1 = 3, no2 = 2, sum = 0;
  findsum( no1, no2, sum );
  printf("sum=%d", sum );
}

void findsum( int no1, int no2, int& sum )
{
  sum = no1 + no2;
}
Run Code Online (Sandbox Code Playgroud)

请给我一个解决方案

谢谢

java android pass-by-reference

3
推荐指数
1
解决办法
6770
查看次数

将字符串传递给函数

我想问一个非常简单的问题.我只是将一个String对象传递给一个函数,但结果很奇怪.我认为因为我传递一个对象(通过引用),结果应该是"Here"而不是"Hello".为什么会这样?

public class MainStr
{

/**
 * @param args
 */
public static void main(String[] args)
{
    String str = "Hello!";
    System.out.println(str);
    changeString(str);
    System.out.println(str);


}

static void changeString(String str)
{
    str=" HERE";
}

}
Run Code Online (Sandbox Code Playgroud)

谢谢.

编辑:

public class MainStr
{

String str;
/**
 * @param args
 */
public static void main(String[] args)
{
    MainStr ms = new MainStr();
    ms.str = "Hello!";
    System.out.println(ms.str);
    changeString(ms);
    System.out.println(ms.str);


}

static void changeString(MainStr ms)
{
    ms.str=" HERE";

}

}
Run Code Online (Sandbox Code Playgroud)

如果是这种情况,那么为什么我在包装器对象中传递它是有效的?包装器对象不是通过引用?

PS:为什么这样做?String是一个对象.为什么我需要另一个包装器Object来更改OBJECT!如果我想通过引用传递内容怎么办?那可能吗?

java

2
推荐指数
1
解决办法
370
查看次数

将数组返回到main方法

我有一个关于将数组从一个方法返回到main的问题.这是严重开始惹恼我,我不能围绕这个包裹我的大脑.好像即使我在我的方法中更改了数组,当我在main中显示它时它会显示旧数组.我正在尝试删除我的数组中的重复数字,我知道它有效,因为我已经在调试器中逐步完成它但在我返回它并返回main之后,它再次显示整个数组!我知道我在这里失踪一定很容易.有人可以指点我正确的方向吗?这是我的代码......

public static void main(String[] args) {
    Scanner input = new Scanner(System.in);
    int[] numbers = new int[10];

    System.out.print("Enter 10 numbers: ");

    for (int x = 0; x < numbers.length; ++x)
        numbers[x] = input.nextInt();

    eliminateDuplicates(numbers);

    for (int y = 0; y < numbers.length; ++y)
        System.out.print(numbers[y] + " ");
}


public static int[] eliminateDuplicates(int[] numbers) {
    int[] temp = new int[numbers.length];
    int size = 0;
    boolean found = false;

    for (int x = 0; x < numbers.length; ++x) {

        for (int y …
Run Code Online (Sandbox Code Playgroud)

java arrays loops for-loop

2
推荐指数
1
解决办法
3053
查看次数