标签: getter-setter

IntelliJ getter/setter格式

如何让IntelliJ在一行上生成getter/setter,如下所示:

public String getAbc() { return abc; }
Run Code Online (Sandbox Code Playgroud)

代替

public String getAbc() {
   return abc;
}
Run Code Online (Sandbox Code Playgroud)

??

java intellij-idea getter-setter

28
推荐指数
6
解决办法
1万
查看次数

单元测试访问器(getter和setter)

给出以下方法:

public function setFoo($foo) {
    $this->_foo = $foo;
    return $this;
}

public function getFoo() {
    return $this->_foo;
}
Run Code Online (Sandbox Code Playgroud)

假设,未来可能会更改为更复杂:

  • 你会如何为这些方法编写单元测试?
  • 只有一种测试方法?
  • 我应该跳过这些测试吗?
  • 代码覆盖怎么样?
  • @covers注释怎么样?
  • 也许在抽象测试用例中实现一些通用的测试方法?

(我使用Netbeans 7)

这似乎是浪费时间,但我不介意IDE是否会自动生成这些测试方法.

要从塞巴斯蒂安·伯格曼博客的评论中获得评论:

(就像测试getter和setter一样 - 失败!).无论如何,如果他们失败了; 那些依赖它们的方法不会失败吗?

那么,代码覆盖怎么样?

php phpunit unit-testing accessor getter-setter

27
推荐指数
2
解决办法
9779
查看次数

在Swift中压倒getter

我有一种情况需要覆盖属性的getter.

假设我们有:

public class MyBaseClass {
    private var _name: String
    public internal(set) var name: String {
        get {
            return self._name
        }
        set {
            self._name = newValue
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我猜,没什么特别的.

现在,如果我尝试覆盖派生类中的getter:

public class MyDerivedClass: MyBaseClass {
    public var name: String {
        get {
            return "Derived - \(super.name)"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我得到编译错误:无法使用只读属性"name"覆盖mutable属性.

如果我尝试添加setter并覆盖它:

public class MyDerivedClass: MyBaseClass {
    public internal(set) var name: String {
        get {
            return "Derived - \(super.name)"
        }
        set {
            super.name = newValue
        }
    }
} …
Run Code Online (Sandbox Code Playgroud)

inheritance overriding getter-setter swift

27
推荐指数
2
解决办法
2万
查看次数

Python的"__get*__"和"_del*__"方法有什么区别?

几个月前我刚刚开始学习Python,我试图理解不同__get*__方法之间的差异:

__get__
__getattr__
__getattribute__
__getitem___
Run Code Online (Sandbox Code Playgroud)

他们的__del*__等价物:

__del__
__delattr__
__delete__
__delitem__
Run Code Online (Sandbox Code Playgroud)

这些有什么区别?我什么时候应该使用另一个?是否有一个特定的原因,为什么大多数__get*__方法都有__set*__等价物,但没有__setattribute__

python accessor standard-library getter-setter

25
推荐指数
1
解决办法
9403
查看次数

何时在java中使用get/set方法

我想知道何时在我的类中使用get和set方法(getName,setName),classVariable.name = ""而不是简单? = classVariable.getName()

这是使用set和get方法的类的示例

public class ClassExampe {

    String name;
    String course;

    public String getName ( )
    {
        return name;
    }

    public void setName (String studentName)
    {
        name = studentName;           
    }

    public String getCourse ( )
    {
        return course;
    }

    public void setCourse (String studentCourse)
    {
        course = studentCourse;
    }
}
Run Code Online (Sandbox Code Playgroud)

谢谢

java getter-setter

24
推荐指数
4
解决办法
8万
查看次数

原子属性的setter和getter

什么是自动生成的getter和setter看起来像以下属性值?

... in .h
@interface MyClass : NSObject {
@private
    NSString *_value;
}

@property(retain) NSString *value;

... in .m
@synthesize value = _value;
Run Code Online (Sandbox Code Playgroud)

如果我改变属性怎么办?

@property(retain, readonly) NSString *value;
Run Code Online (Sandbox Code Playgroud)

特别是我对故事的原子部分感兴趣,加上保留,如果可能的话,详细的代码将更清楚地说明幕后发生了什么.

properties atomic objective-c getter-setter

24
推荐指数
1
解决办法
8849
查看次数

我应该或不应该使用getter和setter方法吗?

好吧,这真的让我烦恼,我开始认为这一切都取决于个人选择,而不是提高效率或编写更好的代码的特定方式:我应该还是不应该在PHP项目中使用getter/setter方法?到目前为止,我读过的答案相当矛盾,并不完全适合PHP,这不是一种编译语言.例如,在Stack Overflow上讨论这个问题(" 为什么要使用getter和setter?").关于为什么我应该在我的代码中使用它们有很多很好的理由,但是所有的儿童评论都提到了访问者是如何邪恶的并且应该避免,在几个更令人不安的评论之间穿插,提到它们应该完全避免,因为它"搞砸你的代码".

我得到的只是相互矛盾的答案,其中没有一个与解释的PHP环境相关.有人可以阐明为什么/为什么不在PHP中使用它们,以及它们的决定背后的理由?如果我们可以简单地将属性定义为私有或受保护并且无论如何:

封装吸气剂和定型器提供的是可笑的薄

...引自"sbi"(为什么要使用吸气剂和二传手?)

就个人而言,我仍然不知道如何:

Class Foo {
    public $bar;

    function setBarType($val) {
       $this->bar = $val;
    }
}

$fee = new Foo();
$fee->setBarType(42);
Run Code Online (Sandbox Code Playgroud)

优于此:

Class Foo {
    public $bar;
}

$fee = new Foo();
$fee->bar = 42;
Run Code Online (Sandbox Code Playgroud)

php oop getter-setter

24
推荐指数
4
解决办法
2万
查看次数

在Symfony/Doctrine ORM中生成实体Getter和Setter

我有以下ORM Symfony实体,只有属性:

<?php

namespace Evr\HomeBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Table(name="ev_article")
 * @ORM\Entity
 */
class Article
{
    /**
     *
     * @ORM\Column(name="article_id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * 
     * @ORM\ManyToOne(targetEntity="Subategory",inversedBy="articles")
     * @ORM\JoinColumn(name="subcategory_id",referencedColumnName="id")
     */
    private $subcategory;


    /**
     * 
     * @ORM\Column(type="string",length=512)
     */
    private $title;

    /**
     * 
     * @ORM\Column(type="text")
     */
    private $content;

    /**
     * 
     * @ORM\Column(type="text")
     */
    private $exclusive_content;

    /**
     * 
     * @ORM\Column(type="date")
     */
    private $creation_date;


     /**
     * 
     * @ORM\Column(type="integer")
     */
    private $views;

    /**
     * 
     * @ORM\Column(type="integer")
     */
    private …
Run Code Online (Sandbox Code Playgroud)

doctrine annotations getter-setter symfony

24
推荐指数
4
解决办法
7万
查看次数

吸气剂和二传手风格

(暂不回答你应该拥有它们的问题.)

我一直希望只使用函数重载为getter和setter提供相同的名称.

int rate() { return _rate; }      
void rate(int value) { _rate = value; }

// instead of     
int getRate() { return _rate; }      
void setRate(int value) { _rate = value; }

// mainly because it allows me to write the much cleaner     
total( period() * rate() );    
// instead of      
setTotal( getPeriod() * getRate() );
Run Code Online (Sandbox Code Playgroud)

当然我是对的,但我想知道图书馆作家是否有任何理由?

c++ oop getter-setter

23
推荐指数
4
解决办法
1万
查看次数

为什么要声明getter和setter方法是私有的?

我看到了一个代码,其中getter和setter方法被声明为private.我试图找出它背后的逻辑,我真的很难理解为什么你会将它们声明为私有?这与我们试图通过吸气剂和制定者实现的完全相反.

java encapsulation getter-setter

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