天道酬勤,学无止境

java

强制子类从 SuperClass 到 @Override 方法。 SuperClass中的方法必须有主体(Force SubClasses to @Override method from SuperClass. Method in SuperClass must have body)

问题 我想迫使SubClasses来@Override方法从SuperClass 。 SuperClass方法不能是abstract ,因为我想提供一些基本的实现。 这是我的代码示例: public abstract class GenericModel<T extends GenericModel> { long id, counter; public String methodToBeOverridenInSubClass(String name) { // some basic implementation // rest details will be provided by subclass return name; } } public class SubClass extends GenericModel<SubClass> { @Override public String methodToBeOverridenInSubClass(String name) { switch (name) { case "name": return "Real name"; default: super.methodToBeOverridenInSubClass(name); } } } 这篇文章很有趣:MustOverrideException 和

2021-09-21 18:23:12    分类:技术分享    java   inheritance   methods   abstract   overriding

How to pass parameters through Java Validator messages?(How to pass parameters through Java Validator messages?)

问题 Currently, I have something like @NotNull(message="{err.required}") @Size(min=1, message="{err.required}") private String firstName; In my messages.properties, I have err.required={0} is required. It works but it prints out firstName is required. which is ugly. It passed the variable name firstName as parameter in {0}. How do I pass in something like "First name" instead? So it will become First name is required. 回答1 你可以这样做: @NotNull(message="First name {err.required}") @Size(min=1, message="First name {err.required}") private String firstName; @NotNull(message="Last name {err.required}")

2021-09-21 18:23:05    分类:技术分享    java   spring   jakarta-ee   spring-validator

如何在java中获取JSON对象的所有节点和子节点?(How to fetch all the nodes and child nodes of JSON object in java?)

问题 我想获取以下 JSON 对象的所有节点。 例如结果、身份证明、付款等。 { "result": { "identification": { "transactionid": "Merchant Assigned ID", "uniqueid": "d91ac8ff6e9945b8a125d6e725155fb6", "shortid": "0000.0005.6238", "customerid": "customerid 12345" }, "payment": { "amount": "2400", "currency": "EUR", "descriptor": "order number" }, "level": 0, "code": 0, "method": "creditcard", "type": "preauthorization", "message": "approved", "merchant": { "key1": "Value1", "key0": "Value0" } }, "id": 1, "jsonrpc": "2.0" } 我使用了以下代码: JSONObject partsData = new JSONObject(returnString); Iterator<String> iterator = jsonObject.keys()

2021-09-21 18:21:25    分类:技术分享    java   json

所有类如何从 Object 继承?(How do all classes inherit from Object?)

问题 所有类都继承自java.lang.Object ,尽管extends Object (通常)没有在任何地方写出。 这怎么可能? 回答1 如果您没有明确地编写extends Object ,编译器会为您完成。 所以知道一个类只能扩展一个超类,编译器会查看层次结构,将最高的超类扩展为Object 。 所以每个类都会直接或间接继承Object类。 然而Object类是一个特例,因为它不扩展任何东西。 最后,如果您要编译一个简单的类并对其进行反编译,您将看到编译器将 extends java.lang.Object (或等效的字节码)插入到类中 回答2 Object是所有类的隐式直接/间接超类。 来自 Oracle Java 文档: 定义:从另一个类派生的类称为子类(也称为派生类、扩展类或子类)。 派生子类的类称为超类(也是基类或父类)。 除了没有超类的 Object 外,每个类都有一个且只有一个直接超类(单继承)。 在没有任何其他显式超类的情况下,每个类都是 Object 的隐式子类。

2021-09-21 18:21:00    分类:技术分享    java   class   object   inheritance

导航抽屉中的地图活动(Maps Activity in Navigation Drawer)

问题 我在导航抽屉中显示地图活动时遇到问题。 这是我的代码。 MainActivity.java(这是我的导航抽屉) public class MainActivity extends ActionBarActivity { private ListView mDrawerList; private DrawerLayout mDrawerLayout; private ArrayAdapter<String> mAdapter; private ActionBarDrawerToggle mDrawerToggle; private String mActivityTitle; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mDrawerList = (ListView)findViewById(R.id.navList); mDrawerLayout = (DrawerLayout)findViewById(R.id.drawer_layout); mActivityTitle = getTitle().toString()

2021-09-21 18:20:56    分类:技术分享    java   android   xml   google-maps

显示空视图后过滤器列表不会重新出现(Filter list not reappearing after empty view shown)

问题 出于某种原因,在显示没有匹配项的空视图后,从搜索视图中删除所有文本后,我的列表视图不会重新出现。 在我的适配器类中,AFAIK .clear() in mData.clear(); 需要更改为其他内容,但我不知道该更改什么。 ItemListAdapter 类 public class ItemListAdapter extends BaseAdapter implements Filterable { private List<Victoria> mData; private List<Victoria> mFilteredData; private LayoutInflater mInflater; private ItemFilter mFilter; public ItemListAdapter (List<Victoria> data, Context context) { mData = data; mFilteredData = new ArrayList(mData); mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); } @Override public int getCount() { return mFilteredData

2021-09-21 18:14:45    分类:技术分享    java   android   android-activity   android-listview   android-listfragment

将 JHipster/MongoDB 应用程序部署到 Heroku(Deploying a JHipster/MongoDB application to Heroku)

问题 JHipster 提供用于将应用程序部署到云提供商(例如 Heroku 和 Openshift)的子生成器,但不适用于使用 MongoDB 的应用程序,因为 Mongeez 需要管理员权限,这在 PaaS 环境中当然是不可能的。 但是,只要停用 Mongeez,就应该可以在云提供商上运行 JHipster + MongoDB。 我做了以下(使用 Heroku): 首先,我手动导出了 JHipster 在本地开发机器上创建的 MongoDB 数据库,并将其导入到 Mongolab 实例中。 如果使用的配置文件是prod ,则 Mongeez 不会被实例化。 在对 JHipster 的 Heroku 子生成器进行一些修改后,可以将应用程序部署到 Heroku。 生成器现在忽略_HerokuDatabaseConfiguration.java (用于 JDBC)并且在使用的 Procfile 中,我将配置文件更改为prod (而不是prod,heroku )并删除了参数--spring.datasource.heroku-url=$DATABASE_URL 。 它工作得很好,但我在注入 MongoDB 连接字符串时遇到了问题。 目前,凭证被“硬编码”到application-prod.yml ,因此有必要在凭证更改的情况下重新部署整个应用程序。 在另一次尝试中,我将spring

2021-09-21 18:14:24    分类:技术分享    java   spring   mongodb   heroku   jhipster

如何正确使用 Bouncy Castle 的 OAEPEncoding for RSA(轻量级 API)(How to properly use Bouncy Castle's OAEPEncoding for RSA (Lightweight API))

问题 我一直在玩 Bouncy Castle 的 RSA(轻量级 API)实现,并弄清楚了基础知识。 查看他们的 JCE 提供程序实现规范,我注意到不同的填充方案可以与 RSA 一起使用。 据我了解,默认情况下使用空填充。 所以我开始探索 OAEP 填充,特别是OAEPWithSHA512AndMGF1Padding 。 用谷歌搜索并不是很有帮助,所以我开始挖掘 BC 的源代码并找到了 org.bouncycastle.jce.provider.JCERSACipher 类。 但是看着initFromSpec很快就让我头疼了...具体来说,我不明白可以传递给OAEPEncoding构造函数的最后两个参数是什么。 根据 BC 的 API,允许四个参数的 OAEPEncoding 构造函数接受Digest mgf1Hash和byte[] encodingParams作为最后两个参数。 这让我很难过,因为我不知道如何获取掩码生成算法的实例,也不了解称为encodingParams的字节数组背后的目的。 下面代码中arg3和arg4的值应该是什么? RSABlindedEngine rsa = new RSABlindedEngine(); SHA512Diges sha512 = new SHA512Digest(); Digest arg3 = ???; byte[] arg4 =

2021-09-21 18:11:56    分类:技术分享    java   security   encryption   rsa   bouncycastle

Solr 5.1:Solr 创建的日志文件太多(Solr 5.1: Solr is creating way too many log files)

问题 我正在处理 Solr 5.1 创建太多日志文件的问题。 每次重新启动 Solr 并在一周内定期重新启动时,Solr 都会创建以下文件,我需要它停止: solr_gc_xxxxxxxx_xxxx 类型的文件,其中 x 分别代表日期和某种识别编号。 这些包含垃圾收集信息。 solr_log_xxxxxxxx_xxxx 类型的文件,其中 x 分别代表日期和某种识别号。 这些包含与您在 solr.log 中找到的相同类型的信息。 一个 solr-[port]-console.log 类型的文件。 它始终只包含以下文本: WARNING: System properties and/or JVM args set. Consider using --dry-run or --exec WARNING: System properties and/or JVM args set. Consider using --dry-run or --exec 在一周内,我收集了近 30 个类型 1 和类型 2 的文件! 更糟糕的是,文件类型 1 和 2 似乎不尊重我的log4j.rootlogger设置,而是填充了 INFO 级别的材料。 以下是我的log4j.properties文件的相关部分: # Logging level solr.log=logs log4j.rootLogger

2021-09-21 18:09:56    分类:技术分享    java   solr   lucene

自定义 RecyclerAdapter 和 startActivityForResult(Custom RecyclerAdapter and startActivityForResult)

问题 我有一个包含使用自定义RecyclerAdapter的RecyclerView的Fragment 。 我的自定义RecyclerAdapter有一个onClickListener - 单击某个位置时,我希望它启动startActivityForResult 。 到目前为止,当它被点击时,它会根据需要启动活动。 但是,当我按下后退按钮转到包含RecyclerView的Fragment ,从未调用过onActivityResult 。 我已将上下文传递给自定义RecyclerAdapter 。 这是可能的吗? 或者启动startActivityForResult的 Activity/Fragment 是拦截它的那个? 如果不是,我最终将使用手势检测器或类似的东西处理 Fragment 中的 onClick,但在此之前我想给它一个公平的破解! 注:我已经包括onActivityResult在MainActivity它具有Fragment因此容器Fragment不会收到onActivityResult如果startActivityForResult从开始Fragment 。 我的代码: RecyclerAdapter onClickListener: @Override public void onClick(View v) { String titleId =

2021-09-21 18:08:37    分类:技术分享    java   android   android-fragments   android-recyclerview   onactivityresult