java - 如何通过使用 from 方法传递参数来为属性赋值?
问题描述
我需要仅使用一种设置方法将 YEAR、MONTH、DAY 属性分配给值。因此,我通过逐行调用 set 方法将 DATE.YEAR、DATE.MONTH、DATE.DATE 作为参数传递,并带有值。您可以对 set 方法进行任何更改。但是您不能对主要方法进行更改。
class Date{
static int YEAR;
static int MONTH;
static int DAY;
public void set(int field,int value){
//i need to put code here to assign YEAR, MONTH, DAY to values
}
public void printDate(){
System.out.println(YEAR+"-"+MONTH+"-"+DAY);
}
}
class Demo{
public static void main(String args[]){
Date d1=new Date();
d1.set(Date.YEAR,2016); //set(int field, int value)
d1.set(Date.MONTH,05);
d1.set(Date.DAY,30);
d1.printDate(); //2016-5-30
}
}
解决方案
标记YEAR
, MONTH
ANDDAY
为 final 并在set()
方法中使用它们进行比较
class Date {
static final int YEAR = 0;
static final int MONTH = 1;
static final int DAY = 2;
private int year;
private int month;
private int day;
public void set(int field, int value) {
if (field == YEAR)
this.year = value;
else if (field == MONTH)
this.month = value;
else if (field == DAY)
this.day = value;
}
public void printDate() {
System.out.println(year + "-" + month + "-" + day);
}
}
推荐阅读
- c# - 执行 inkCanvas1.Strokes.Erase() 后的 WPF-InkCanvas 撤消操作
- java - Cytoscape java:将边缘一直绘制到节点的中心
- c# - c# asp.net 身份和自定义角色
- yii2 - 如何更改 yii2 Query Builder 的数据库名称
- java - 休眠@ManyToOne 映射
- git - Git 提交速度非常慢
- node.js - 'await' 在等待基于 promise 的函数时对此表达式的类型没有影响
- tsql - 将 FIRST_VALUE 与基于另一列的条件一起使用
- typescript - Typescript fluent api builder多个参数(覆盖)不可能
- r - 如何下载和阅读htm。R中的文件