标签: reference

使用Java中的Integer对象比较运算符的安全性

什么时候使用比较运算符是安全的,例如==,> =,<在Java中使用Integer对象而不是原始的int?

http://docs.oracle.com/javase/tutorial/java/nutsandbolts/op2.html

我知道==对于引用是危险的,你应该使用.equals,但其他运算符呢?例如

int x = 7;
int y = 7;
Integer a = new Integer(7);
Integer b = new Integer(7);

System.out.println(x == y);
System.out.println(a == b);
System.out.println(a.equals(b));
System.out.println(a <= b);
Run Code Online (Sandbox Code Playgroud)

版画

true
false // Why you should use .equals
true
true // Seemed dangerous but it worked?
Run Code Online (Sandbox Code Playgroud)

是否可以使用除double equals以外的任何东西(So>,<,> =和<=是安全吗?),还是应该使用.compareTo()方法?

java integer reference comparison-operators

0
推荐指数
1
解决办法
83
查看次数

在运行时创建对象并使用它们

我的程序运行时创建的对象有问题

首先我创建n个对象(假设n:= 3)

for i:=0 to n-1 do
  begin
    With TGauge.Create(Form1) do
      begin
        Parent  := Form1;  // this is important
        Left    := 20;     // X coordinate
        Top     := 20+i*45;     // Y coordinate
        Width   := 250;
        Height  := 20;
        Kind    := gkHorizontalBar;
        Name    := 'MyGauge'+IntToStr(i);
        //.... 
        Visible := True;
      end;
  end;
Run Code Online (Sandbox Code Playgroud)

这三个对象在表单中创建并可见.现在我想改变它的'属性,但每当我尝试访问这些创建的对象时,我只会得到它

EAccessViolation
Run Code Online (Sandbox Code Playgroud)

例如,当我尝试获取一个对象的名称时

g := Form1.FindComponent('MyGauge0') as TGauge;
Form1.Label1.Caption:=g.Name;
Run Code Online (Sandbox Code Playgroud)

delphi components runtime reference delphi-7

0
推荐指数
1
解决办法
776
查看次数

C++中引用的影响

我正在阅读Scott Meyers的Effective C++并且遇到了这个问题.使用引用/指针的原因包含:

string s1("Nancy");
string s2("Clancy");
string& rs = s1; // rs refers to s1
rs = s2; //rs still refers to s1, but s1's value is now "Clancy".
Run Code Online (Sandbox Code Playgroud)

所以,我尝试了这个:

string s1("Nancy");
string s2("Clancy");
string& rs = s1;
cout << rs << endl;
rs = s2;
cout << rs << endl;
cout << s1 << endl;
Run Code Online (Sandbox Code Playgroud)

输出见:

nancy
clancy
clancy
Run Code Online (Sandbox Code Playgroud)

这意味着s1的值现在已经改变了,s1的原始值永远丢失了?

这是区分引用和指针的事情之一然后??只有当你确定不打算在不同的时间引用不同的对象时才使用引用.

c++ reference

0
推荐指数
1
解决办法
84
查看次数

引用Object.prototype.toString.call导致'TypeError:undefined不是函数'

我遇到了一个不寻常的情况.我存储一个引用Object.prototype.toString.call,试图创建一个快捷方式,调用它作为指定的变量导致TypeError,而每次直接调用它不会.

谁能解释实际发生的事情,而不是我相信我在做什么?

var toString = Object.prototype.toString.call;
toString({}); //Uncaught TypeError: undefined is not a function
Run Code Online (Sandbox Code Playgroud)

以下工作:

var toString = Object.prototype.toString;
toString.call({});
Run Code Online (Sandbox Code Playgroud)

非常感谢.

javascript prototype reference this typeerror

0
推荐指数
1
解决办法
460
查看次数

Java基类参考变量

可以为基类引用变量分配基类对象或派生类对象的地址。

真假?

谁能给我看看这意味着什么的例子?我是Java的新手,正在尝试了解Java的特定语言术语。谢谢。

我认为以下示例就是我在下面编写的代码:

public class B extends A {
    A a = new A();
    A ab = new B();
}

class A {

}
Run Code Online (Sandbox Code Playgroud)

我认为,由于两个参考变量都是有效的语法(在Eclipse中),所以答案是正确的。

java variables reference class base

0
推荐指数
1
解决办法
4744
查看次数

如何在jQuery中通过"this"引用JavaScript类?

请考虑以下JavaScript类,属性和方法:

function Foo() {
    this.data = 123;
}

Test.prototype.foo = function() {
    $("body").append($("<div>")
        .text("Hello World!")
        .click(function () {
            alert("Data: " + this.data);
        })
    );
}

var Bar = new Foo();
Bar.foo();
Run Code Online (Sandbox Code Playgroud)

为什么data警报框中的属性未定义?如何引用"this",如同指向Foo类而不是jQuery div元素?

javascript jquery reference this javascript-objects

0
推荐指数
1
解决办法
55
查看次数

JNA通过引用dll传递字符串,但不返回

嗨,我对Java和DLL有问题。

我需要通过引用将字符串值传递给dll,但是,它不成功。

public short ReadData(int block_id, int offset, int data_size,StringByReference dataBuf, IntByReference err_code);
Run Code Online (Sandbox Code Playgroud)

问题是StringByReference dataBuf,我尝试了多种方法来找到解决方案,但是它不起作用。

调用函数为:

ReadData(0, 4, 13, ??? , status);
Run Code Online (Sandbox Code Playgroud)

原因没有.dll文件。

功能

`public static short Read_Data(int card_type, int block_id, int offset, int data_size, String dataBuf, IntByReference err_code){
        short rc;
        IntByReference status = new IntByReference(0);
         int len = data_size+16;
        //StringByReference dataBuf_ref =  new StringByReference( spaces(data_size+16));
        //StringBuilder zText = new StringBuilder ();
        //zText.append(dataBuf);
        dataBuf = spaces(data_size+16);
        //StringByReference a = new StringByReference(dataBuf);
    //  StringByReference a = new StringByReference(dataBuf);

    //Pointer …
Run Code Online (Sandbox Code Playgroud)

java dll reference jna

0
推荐指数
1
解决办法
2340
查看次数

为什么参考数据类型指向?

考虑:

在此输入图像描述

我理解,对于原始数据类型,分配的内存(橙色矩形)包含您想要的内容,但对于引用数据类型,分配的内存包含指向您想要的内容的引用/指针.

为什么要这样设计呢?对于通常是参考数据类型(对象,数组等)的东西,为什么不把你想要的东西放在橙色矩形中呢?

java types pointers reference reference-type

0
推荐指数
1
解决办法
300
查看次数

什么是C指数对指针"*&"的引用

有人可以让我知道指针 "*&" 的C等价物吗?

换句话说,如果我的函数在C++中是这样的:

void func(int* p, int*& pr)
{
    p++;
    pr++;
}
Run Code Online (Sandbox Code Playgroud)

在C中转换它时,我如何更改第二个参数?

更新: @MikeDeSimone:如果我理解了翻译的代码,请告诉我?让我从初始化变量开始:

int i = 10;
int *p1 = &i;
int **pr= &p1;
Run Code Online (Sandbox Code Playgroud)

所以,当你执行(*pr)++时,这基本上相当于:

(p1)++
Run Code Online (Sandbox Code Playgroud)

但是,我无法理解main()内部的外观如何?

问题2:如果我有这样的代码片段,我该怎么办?

void pass_by_reference(int*& p)
{
        //Allocate new memory in p: this change would reflect in main
    p = new int;
}
Run Code Online (Sandbox Code Playgroud)

c pointers reference

0
推荐指数
1
解决办法
2478
查看次数

指针和引用如何保存在内存中

考虑这两个文件:

//main1.cpp

int main()
{
    int a = 0;
    int &b = a;
}

//main2.cpp

int main()
{
    int a = 0;
    int *b = &a;
}
Run Code Online (Sandbox Code Playgroud)

当我用gcc -S选项编译它并比较2个汇编器输出时,它们是完全相同的输出.那么为什么有些书说参考变量不使用额外的内存呢?

c++ memory pointers reference

0
推荐指数
1
解决办法
74
查看次数