- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
class DogOwner {
Dog dog;
DogOwner(Dog dog) {
this.dog = dog;
}
}
class Dog {
int age;
Dog(int age) {
this.age = age;
}
}
DogOwner peter = new DogOwner(new Dog(2));
Dog max = peter.dog;
max.age = 3;
System.out.println(peter.dog.age); // 3
如果 max
不是对 拥有的
?换句话说,我希望能够将 Dog
的引用,我如何从 peter
中检索 max
>彼得max
的年龄设置为 3,而不更改 peter
的 Dog
。
最佳答案
您要么必须克隆 peter.dog
,要么基于它创建一个新实例。
关于java - 如何在 Java 中将对象设为 'derefence',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16091195/
我正在阅读 Rust 的 Deref 文档特点: pub trait Deref { type Target: ?Sized; fn deref(&self) -> &Self::Ta
下面是Deref example from The Rust Programming Language除了我添加了另一个断言。 为什么 assert_eq 和 deref 也等于 'a'?为什么在手动
我想实现 Deref和 DefrefMut在拥有盒装特征的结构上,例如: use std::ops::{Deref, DerefMut}; trait Quack { fn quack(&se
这个问题在这里已经有了答案: Why is the return type of Deref::deref itself a reference? (2 个回答) 1年前关闭。 例如,我有一个实现了
来自 clojure 为勇敢而真实的人: (defmacro enqueue [q concurrent-promise-name & work] (let [concurrent (butl
我正在传递一个链表,其中包含另一个链表到一个函数,但我在从传递的双指针中取消/引用内部链表时遇到问题。 push(*config->inner_linked_list... 行的编译器错误是 '*co
我正在尝试为枚举实现Deref: use std::rc::Rc; use std::ops::Deref; pub trait tObject { fn name(&self) -> Str
我需要为来自外部 crate 的对象实现 fmt::Display 方法,因此我为该对象创建了一个包装器。我希望能够使用原始对象的所有方法,而不必重新定义所有方法。我尝试按照很棒的 IRC chann
这个问题在这里已经有了答案: Why is the return type of Deref::deref itself a reference? (2 个答案) 关闭 5 年前。 以下代码: us
我有: struct Id; struct Url; struct IdAndUrl { id: Id, url: Url, } 我希望能够使用 IdAndUrl在我需要的地方 Id
我经常使用 newtype 模式,但我厌倦了编写 my_type.0.call_to_whatever(...)。我很想实现 Deref 特性,因为它允许编写更简单的代码,因为在某些情况下我可以使用我
我在 Rust 中编写一个 Vector 类只是为了好玩,我认为能够为它实现 Deref 会很好,就像访问元组引用一样访问它。例如,Vec2可以取消引用为 &(f32, f32) .我想到了这个: p
如果能够使用 Deref 从通用容器生成 &TraitType,而不是调用 instance.as_ref() 会更方便。即: (*my_container).do_thing(); 对比 my_co
在这段代码之前,我以为我了解了移动语义。 fn main() { let v = Data { body: vec![10, 40, 30], }; p(&v)
我有一个实现Deref的结构: pub struct Foo { val: u8, } impl Deref for Foo { type Target = u8; fn de
class DogOwner { Dog dog; DogOwner(Dog dog) { this.dog = dog; } } class Dog {
我在尝试将 impl Add for String 添加到标准库时遇到了这个问题。但是我们可以轻松复制它,无需运算符(operator)恶作剧。我们从这个开始: trait MyAdd { f
在阅读了关于 Smart Pointers and Interior mutability 的 Rust 书中的部分之后,作为个人练习,我尝试编写一个函数,该函数将遍历智能指针的链表并返回列表中的“最
这里是 example of usage Deref 的修改版本: use std::ops::Deref; use std::rc::Rc; #[derive(Clone, PartialEq, H
我有一个 String newtype ErrorMessage 我在原型(prototype)箱中用于错误。 (我知道这是一种不好的做法。我将在发布之前构建一组适当的不同错误类型。) 我需要 Err
我是一名优秀的程序员,十分优秀!