如何在 Android Studio 中自动生成 getter 和 setter
Posted
技术标签:
【中文标题】如何在 Android Studio 中自动生成 getter 和 setter【英文标题】:How to automatically generate getters and setters in Android Studio 【发布时间】:2014-07-16 19:50:04 【问题描述】:android Studio 中是否有用于在给定类中自动生成 getter 和 setter 的快捷方式?
【问题讨论】:
【参考方案1】:在编辑器中使用 Alt+ Insert for Windows 或 Command+ N for Mac,您可以轻松为类的任何字段生成 getter 和 setter 方法。这与使用菜单栏的效果相同 -> Code -> Generate...
然后使用 shift 或 control 按钮,选择所有需要添加 getter 和 setter 的变量
【讨论】:
对于 Mac 上的用户,它是 control + enter。 是否有可能创建 getter 和 setter,例如 ivar _username,getter 和 setter 是 getUsername 和 setUsername? 在 Mac 上 Control+n 对于java来说它工作正常。但是我在android studio中使用kotlin进行应用程序开发。那么如何像java一样生成getter/setter? 如何为 Kotlin 类生成 getter 和 setter【参考方案2】:对于 macOS,默认为 ⌘+N。
右键单击并选择“生成...”以查看当前映射。您可以一步选择多个字段来生成getter/setter。
见http://www.jetbrains.com/idea/webhelp/generating-getters-and-setters.html
【讨论】:
【参考方案3】:此答案涉及您的问题,但并不完全是答案。 =) 这是我最近发现的一个有趣的库,我想和你分享。
Project Lombok可以为你的类自动生成常用方法,如getter、setter、equals()
和hashCode()
、toString()
。它用减少样板代码的注释替换它们。要查看使用 Lombok 编写的代码的良好示例,请观看主页上的视频或阅读 this article。
使用 Lombok 进行 Android 开发很容易,并且不会让您的 android 应用程序变得“更重”,因为 Lombok 是一个仅编译时的库。正确configure你的Android项目很重要。
另一个例子:
import lombok.Getter;
import lombok.Setter;
public class Profile
@Getter @Setter
private String username;
@Getter @Setter
private String password;
可以使用 Lombok 进行 Android 开发。 Lombok 应该是一个仅编译时的依赖项,否则整个 Lombok 将最终出现在您的 DEX 文件中,从而浪费宝贵的空间。 Gradle sn-p:
dependencies
compileOnly "org.projectlombok:lombok:1.16.18"
此外,您可能希望在开发时添加 Lombok IntelliJ plugin 以在您的 IDE 中支持 Lombok 功能。还有基于 Lombok 的 Hrisey 库。简单地说,就是 Lombok + Parcellable 支持。
【讨论】:
不幸的是,Project Lombok 在 Android 库项目中中断。现在不可靠。 @IgorGanapolsky 有什么证据吗? @IgorGanapolsky Project Lombok 在 Android 上运行良好。见setup guide。【参考方案4】:右键单击Editor
,然后选择Source -> Generate Getters and Setters
或按Alt
+ Shift
+ S
【讨论】:
这是 Eclipse。他要求使用 Android Studio。【参考方案5】:以防万一有人在使用 Eclipse
Windows 8.1 操作系统 | Eclipse 空闲月神
声明***变量private String username
Eclipse 请在屏幕左侧生成警告单击该警告并显示一些建议,然后选择生成。
【讨论】:
问题是针对Android Studio,而不是eclipse【参考方案6】:如 here 所述,您还可以自定义 getter/setter 生成以考虑前缀和后缀(例如,m 代表实例变量)。转到File->Settings
并展开Code Style
,选择Java
,然后在Code Generation
选项卡下添加您的前缀/后缀。
【讨论】:
【参考方案7】:使用code=>generate=>getter()和setter()对话框,选择所有变量,一次生成所有getter(),setter()方法。
【讨论】:
【参考方案8】:Android Studio 和 OSx:
按cmd+n > 生成 > Getter和Setter
Android Studio 和 Windows:
按 Alt + 插入 > 生成 > Getter和Setter
【讨论】:
刚刚在 Windows 上测试过 Alt+Shift+S+R 不起作用,右键单击不包含 Source。可能是自定义设置吗? 我已经修复了 Win 部分! :)【参考方案9】:您可以使用Android Studio
的AndroidAccessors
插件来生成不带m 作为方法前缀的getter 和setter
例如:mId;
将生成getId()
和setId()
而不是getmId()
和setmId()
【讨论】:
【参考方案10】:Android Studio 和 Windows:
fn + alt + 插入
【讨论】:
您的图片未正确显示在帖子中,并且您尚未完成图片描述 - 它显示“在此处输入图片描述”。【参考方案11】:您可以通过以下步骤生成getter和setter:
首先声明变量。 点击键盘上的ALT+Insert,将光标放在变量声明部分 现在选择构造函数并按下键盘上的Ctrl+A 并单击Enter 以创建构造函数。 现在再次将光标放在构造函数右大括号的下一行,单击 ALT+INSERT 并选择 getter 和 setter,然后再次按 CTRL+ A 选择所有变量并点击 Enter。就是这样。编码愉快!
【讨论】:
【参考方案12】:在 Mac 上使用 Ctrl+Enter 获取选项列表以生成 setter、getter、构造函数等
【讨论】:
【参考方案13】:另一种有趣的方式
定义后在对象的任意位置输入参数名称,你会看到setter和getter,只需选择并点击回车:)
我尝试使用 Android Studio 2.3
【讨论】:
【参考方案14】: 创建变量 右键单击 选择“生成”,然后选择“Getter and Setter”选项【讨论】:
kotlin 构造函数的任何快捷方式? Alt + Ins 没有显示生成构造函数选项。 你试过Alt + Enter
吗?
对于这种情况,我不知道发生了什么。您是否在 Intellij 论坛中发布了您的问题?
当您找到解决方案时,请在此处分享。【参考方案15】:
将光标定位在变量下->右键->生成->Getter和Setter->选择变量进行get和set
或
Alt + Insert -> Getter 和 Setter -> 选择变量
【讨论】:
问题是是否可以使用单个快捷方式生成 getter 和 setter,所以在菜单中找不到此选项。 我不明白。 Alt + Insert -> Getter 和 Setter -> 选择变量【参考方案16】:使用 Alt+ 插入 或右键单击并选择“生成...” 您可以在 Android Studio 中轻松生成 getter 和 setter 或 Override 方法。 这与使用菜单栏 Code -> Generate...
的效果相同
【讨论】:
以上是关于如何在 Android Studio 中自动生成 getter 和 setter的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Android Studio VideoView 中自动重播视频
如何在 Android Studio 中自动增加 TextView 的值
如何在最新的 android studio 中自动导入缺失的类?