大数据全系列 教程
1869个小节阅读:467.9k
408考研
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
xxxxxxxxxx
package cn.itbaizhan.tranformer.model;
import cn.itbaizhan.common.GlobalConstants;
import org.apache.commons.lang.StringUtils;
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
/**浏览器维度实体类
* @author GTJin
*/
public class BrowserDimension extends BaseDimension{
//属性定义
private int id;//唯一标识id
private String browserName;//名称
private String browserVersion;//版本
public BrowserDimension() {
super();
}
public BrowserDimension(String browserName, String browserVersion) {
super();
this.browserName = browserName;
this.browserVersion = browserVersion;
}
//清除方法
public void clean(){
this.id = 0;
this.browserName = "";
this.browserVersion = "";
}
//对象的比较方法
public int compareTo(BaseDimension o) {
//判断两个对象在堆内存中的地址是否相同
if(this==o){//表示为同一个对象
return 0;
}
//需要对对象o进行强制类型转
BrowserDimension other = (BrowserDimension)o;
//比较两个对象中的id
/*int tmp = this.id-other.getId();
if(tmp!=0){
return tmp;
}*/
int tmp = Integer.compare(this.id,other.getId());
if(tmp!=0){//如果id不相同,肯定不是同一个对象
return tmp;//就没有必要再去比较browserName和browserVersion
}
tmp = this.browserName.compareTo(other.getBrowserName());
if(tmp!=0){//两个对象browserName不同
return tmp;
}
tmp = this.browserVersion.compareTo(other.getBrowserVersion());
return tmp;
}
//序列化
public void write(DataOutput out) throws IOException {
out.writeInt(this.id);
out.writeUTF(this.browserName);
out.writeUTF(this.browserVersion);
}
//反序列化
public void readFields(DataInput in) throws IOException {
this.id = in.readInt();
this.browserName = in.readUTF();
this.browserVersion = in.readUTF();
}
public boolean equals(Object o) {
if (this == o)
return true;
if (o == null || getClass() != o.getClass())
return false;
BrowserDimension that = (BrowserDimension) o;
if(id!=that.getId()){
return false;
}
if(browserName==null){
if(that.getBrowserName()!=null)
return false;
}else if(!browserName.equals(that.getBrowserName())){
return false;
}
if(browserVersion==null){
if(that.browserVersion!=null)
return false;
}else if(!browserVersion.equals(that.getBrowserVersion())){
return false;
}
return true;
}
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime*result + ((browserName==null)?0:browserName.hashCode());
result = prime*result + ((browserVersion==null)?0:browserVersion.hashCode());
result = prime*result + id;
return result;
}
//设计一个静态的方法,构造一个对象
public static BrowserDimension newInstance(String browserName,String browserVersion){
BrowserDimension browserDimension = new BrowserDimension();
browserDimension.setBrowserName(browserName);
browserDimension.setBrowserVersion(browserVersion);
return browserDimension;
}
/**根据传入的浏览器的名称和浏览器的版本,构造浏览器维度对象的集合
* 输入的:firefox 48
* 返回:
* BrowserDimension(fireforx,48)
* BrowserDimension(firefox,all)
* @param browserName 浏览器的名称
* @param browserVersion 浏览器的版本
* @return 集合对象
*/
public static List<BrowserDimension> buildList(String browserName,String browserVersion){
List<BrowserDimension> list = new ArrayList<>();
if(StringUtils.isBlank(browserName)){
browserName = GlobalConstants.DEFAULT_VALUE;
}
if(StringUtils.isBlank(browserVersion)){
browserVersion = GlobalConstants.DEFAULT_VALUE;
}
list.add(BrowserDimension.newInstance(browserName,browserVersion));
list.add(BrowserDimension.newInstance(browserName,GlobalConstants.VALUE_OF_ALL));
return list;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getBrowserName() {
return browserName;
}
public void setBrowserName(String browserName) {
this.browserName = browserName;
}
public String getBrowserVersion() {
return browserVersion;
}
public void setBrowserVersion(String browserVersion) {
this.browserVersion = browserVersion;
}
}