V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  pipicat  ›  全部回复第 1 页 / 共 2 页
回复总数  38
1  2  
很多游戏都有这个提示。
@marcosteam #10 参考一下 https://www.v2ex.com/t/795373?p=1#r_10784298 比如等级 1 为 1 等级 2 为 1<<1 。商品属性存这个商品所有等级的位与的结果。查询的时候取人的等级 (mFlags & mask) == mask;
设置每个等级二级制为,按为与。数据库只用存 1 个与结果
抽奖
2021-04-21 17:39:56 +08:00
回复了 woduzibue 创建的主题 问与答 微信小程序可以使用百度地图么?
2019-01-30 15:32:31 +08:00
回复了 henmeiweide 创建的主题 分享发现 中介通知房东突然要提前收回房子,查了合同却发现
建议 seo 一波
2019-01-30 15:30:07 +08:00
回复了 henmeiweide 创建的主题 分享发现 中介通知房东突然要提前收回房子,查了合同却发现
@pkxutao #51 我认为这个属于霸王条款了。不然甲方只要回收房屋都可以称作是业主要回收。怎么证明?
2019-01-30 11:33:47 +08:00
回复了 jingyulong 创建的主题 上海 上海哪家医院矫正牙齿比较好呀?价格大概多少?
@jingyulong #67 可以分期。我开始也觉得贵。现在觉得可以接受。而且自从矫正开始,对牙齿健康也比较关注了。医生说我的牙都很健康。我拔了 2 颗智齿。做的金属自锁。才 2 个月
2019-01-29 15:34:46 +08:00
回复了 jingyulong 创建的主题 上海 上海哪家医院矫正牙齿比较好呀?价格大概多少?
@Itanium #44 9 院也这个价了?我在口腔医院也这个价。
2019-01-29 15:32:07 +08:00
回复了 jingyulong 创建的主题 上海 上海哪家医院矫正牙齿比较好呀?价格大概多少?
前几个月去口腔医院开始做的。就是贵点。好处是不像公立那样用排好久的队。
2019-01-28 14:17:03 +08:00
回复了 yuuko 创建的主题 职场话题 在便利蜂你甚至能考数学题!那些奇葩下作的裁员方式
@hilbertz #9 这种一仲裁一个准。只要有人组织起来根本不怕
2019-01-28 13:43:28 +08:00
回复了 yuuko 创建的主题 职场话题 在便利蜂你甚至能考数学题!那些奇葩下作的裁员方式
我寻思这些 HR 到底带了脑子没,绩效,违纪都能免费裁员了?
2019-01-25 16:03:10 +08:00
回复了 hongch 创建的主题 程序员 做个调查- -有多少 Android 原生开发 上 Kotlin 了
真的香
2018-12-25 15:07:54 +08:00
回复了 Jalinzqj 创建的主题 程序员 作为一名程序员,你接受跨语言开发吗
多学点增加技能点挺好的。反正给钱。
2018-12-25 14:07:11 +08:00
回复了 arthasgxy 创建的主题 程序员 有做安卓逆向的吗?求助一个问题
用 jadx 试试搜索这个错误关键字吧。读一下具体检测了什么。
2018-12-24 18:24:29 +08:00
回复了 momuou 创建的主题 程序员 请问这段代码有什么问题?完全看不出有什么异常。。
写了一段,供你参考。
public class Test {

class Model {
@Warning("业务类型不明,请联系管理员")
public String countTypeId;
@Warning("请选择确切日期进行查询后再进行审核")
public String dealDate;
@Warning("请选择确切地市进行查询后再进行审核")
public String regionCode;
@Warning("选择的支付类型有误,请稍后重试")
public String payType;
}


public void Test(){

Model model = new Model();
HashMap<String,String> result = new HashMap<>();
HashMap<String,String> paramMap = new HashMap<>();

Field[] declaredFields = model.getClass().getDeclaredFields();
boolean pass = true;

for (Field field:declaredFields){
if (field.getAnnotation(Warning.class)!=null){
field.setAccessible(true);
try {
Object o = field.get(model);

if (!isVaild(String.valueOf(o))) {
pass = false;
result.put(field.getName(),field.getAnnotation(Warning.class).value());
break;
} else {
paramMap.put(field.getName(),String.valueOf(o).trim());
}
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
}

if (pass) {
try {
int i = dataRecountService.updateDataPayType(paramMap);
if (i > 0) {
result.put("status", "1");
result.put("msg", "提交成功");
}
} catch (Exception e) {
logger.error(e.getMessage(), e);
result.put("msg", "网络异常,请稍后再尝试。");
}
} else {

}

}

public boolean isVaild(String str){
return StringUtils.isBlank(str) && !"null".equals(str);
}

}

@Target(FIELD)
@Retention(RUNTIME)
@interface Warning{
String value() default "";
}

具体细节可能还要调一下。
测试了一下 java8 的代码。同样的代码,java8 不用显式写 Observer,但是参数要写出来。
val a = object : View.OnClickListener {
override fun onClick(v: View?) {
}
}

val b = object : Observer<Any>{
override fun onChanged(t: Any?) {
}
}

idea 提示后简化成
val a = View.OnClickListener { }

val b = Observer<Any> { }

这里 observer 不加泛型是无法单独声明的。
而 livedata 的这个方法泛型已经确定了,所以
viewModel.gardenPlantings.observe(viewLifecycleOwner, Observer { plantings ->
binding.hasPlantings = (plantings != null && plantings.isNotEmpty())
})
上的泛型没有显式的写出来。
1  2  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5990 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 32ms · UTC 03:03 · PVG 11:03 · LAX 19:03 · JFK 22:03
Developed with CodeLauncher
♥ Do have faith in what you're doing.