因此,在提出这个问题之后,很快就发现重要的问题不是"我怎么能",而是"我应该"吗?
我们的客户正在从Java7迁移到Java8(使用Tomcat7).Java7需要设置-XX:MaxPermSize,并且由于个人需求和使用,一些客户已将其最大值增加到安装程序设置的默认值以上.
我应该设置-XX:MaxMetaspaceSize(以前的-XX:MaxPermSize设置)谁定义了一个自定义的最大客户?新安装怎么样?我们应该设置-XX:MaxMetaspaceSize吗?
这样的决定有哪些利弊?
我按照下面的"Android快速入门"进行操作.
https://developers.google.com/sheets/api/quickstart/android
效果很好.
但该示例将电子表格ID硬编码为现有电子表格.
String spreadsheetId = "1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms";
Run Code Online (Sandbox Code Playgroud)
我需要能够按名称查找现有的电子表格,并存储ID(供以后使用).
我想做这样的事情:
private com.google.api.services.sheets.v4.Sheets sheetsService = null;
HttpTransport transport = AndroidHttp.newCompatibleTransport();
JsonFactory jsonFactory = JacksonFactory.getDefaultInstance();
sheetsService = new com.google.api.services.sheets.v4.Sheets.Builder(
transport, jsonFactory, credential)
.setApplicationName("My Application Name")
.build();
String spreadsheetId = null;
List<Spreadsheet> allSpreadsheets = sheetsService.spreadsheets().getAListOfAllSpreadsheets;
for (Spreadsheet spreadsheet : allSpreadsheets) {
if (spreadsheet.getName().equals("My Sheet")){
// found!
spreadsheetId = spreadsheet.getId();
}
}
Run Code Online (Sandbox Code Playgroud)
非常感谢提前!
我在Android中使用Google表格API v4.
https://developers.google.com/sheets/api/quickstart/android
我需要知道最后一次修改工作表的时间(包括用户); 我需要这个人:
我想做这样的事情:
Spreadsheet spreadsheet = sheetsService.spreadsheets().get(spreadsheetId).setIncludeGridData(true).execute();
Date date = spreadsheet.getProperties().getLastEditDate();
Run Code Online (Sandbox Code Playgroud)
但是,当然,不getLastEditDate()存在这样的属性方法.是否有参数或其他API方法来调用以获取此数据?
更好的方法是获取每个单元格的修改日期......但我会考虑整个电子表格或表格的日期.
google-api google-sheets google-drive-android-api google-sheets-api
我正在使用新的Google云端硬盘Android API,我可以连接,并执行所有允许我这样做的操作,但为了使用SpreadsheetService,我需要从已登录的用户中提取accountName/email.
我怎么做?
这是我连接Google Drive API的代码.它工作正常.
private void connect() {
if (isGooglePlayServicesAvailable()) {
if (mGoogleApiClient == null) {
mGoogleApiClient = new GoogleApiClient.Builder(this)
.addApi(Drive.API)
.addScope(Drive.SCOPE_FILE)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.build();
}
// And, connect!
if (!mGoogleApiClient.isConnecting() && !mGoogleApiClient.isConnected()) {
mGoogleApiClient.connect();
writeLog("Connecting...");
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是我使用SpreadsheetService API的地方,但我需要帐户名来获取令牌.
String accountName = "???"; // how do I get this From GoogleClientApi / mGoogleApiClient ?
String accessToken = GoogleAuthUtil.getTokenWithNotification(GDriveActivity.this, accountName, scope, null);
SpreadsheetService service = new SpreadsheetService("v1");
Run Code Online (Sandbox Code Playgroud)
我试过这个添加这个:
String accountName = …Run Code Online (Sandbox Code Playgroud) 我最近开始意识到powermock的Whitebox功能.(总之,它允许您直接测试私有方法或直接从单元测试修改私有成员 - 同时保持私有!)
我知道除了可见方法之外,还有一些思想框架在单元测试之后不屑一顾,但是有时它只是想要一个简单的测试来确保深层辅助方法正在做它应该做的事情......没有经历可能是巨大的开销来准备父方法过滤到你的方法所需的参数和模拟......然后你只需要做魔法来提取内部方法的结果.简而言之,有时测试这些内部方法需要最复杂且难以遵循的单元测试.(而且,我们公司的政策是100%的单位测试覆盖率.这些方法必须经过测试!)
我知道一种方法是更改方法访问器以允许单元测试(例如,从更改private到protected,但powermock Whitebox允许直接测试而不更改源代码.
不过,妈妈总是说,"只因为你可以,并不意味着你应该这样做."
是否适合测试这样的内部方法?如果是这样,我应该使用的经验法则是什么?
我正在创建一个新表,如下所示:
<createTable tableName="myTable">
<column name="key" type="int" autoIncrement="true">
<constraints primaryKey="true" primaryKeyName="PK_myTable" nullable="false"/>
</column>
<column name="name" type="nvarchar(40)">
<constraints nullable="false"/>
</column>
<column name="description" type="nvarchar(100)">
<constraints nullable="true"/>
</column>
</createTable>
Run Code Online (Sandbox Code Playgroud)
至于nullable约束,如果我省略该属性的默认设置是什么?
例如,如果我只这样做:
<column name="description" type="nvarchar(100)"/>
Run Code Online (Sandbox Code Playgroud)
......列可以为空吗?
更重要的是,指定此文档的文档在哪里(因为我还有其他问题)?
我看了一下:Liquibase Column Tag,但它只是含糊地说:
可空的 - 列可以为空吗?
我为客户创建了一个包含大量VBA代码的Excel工作簿.客户将向我提供数据.我将该数据导入到VBA载入模板中,将其另存为xlsm,然后将其传递给客户.我得到了工作簿的报酬,因此我需要阻止他们尝试将新数据复制到现有工作簿中并重新使用它.
我怎么能以某种方式阻止客户重复使用工作簿,只需在主工作表上输入新数据,然后保存为新的工作簿,并免费使用VBA代码.(或者,他们可以在Windows中复制文件,然后在复制的版本上输入新数据.)我需要检测初始导入数据中数据的重大变化.
主表上的数据是相当静态的(在许多已知列上甚至可能是完全静态的).我正在考虑在导入时随机抽取一些单元格数据(可能是10个随机单元格,或行数等),并将这些数据存储在某处.例如,如果50%的单元格改变数据,我可以禁用(或短路)代码中的公共入口点......或其他什么?
我想让客户保持一定的灵活性,但要防止滥用.
我的SQLite查询似乎是从规定的"ORDER BY"子句返回结果.当我运行以下命令时,第三列IS给出了我想要的随机值,但是ORDER BY看起来被忽略了.结果集看似随机排序.
// frequency is an int of either 5, 10, or 15
String query = "SELECT id, name, ABS( RANDOM() % frequency ) FROM person ORDER BY 3"
SQLiteDatabase database = this.getReadableDatabase();
Cursor cursor = database.rawQuery(query, null);
Run Code Online (Sandbox Code Playgroud)
返回类似于:
id name (random)
------------------------------
16 Joe 1
4 Jack 0
67 Jane 7
23 Bob 3
Run Code Online (Sandbox Code Playgroud)
我尝试过很多变种,包括以下内容,但都有类似的结果:第三列没有排序的行:
"SELECT id, name, (RANDOM() % frequency) AS myRand FROM person ORDER BY myRand"
id name myRand
------------------------------
23 Bob 2
16 Joe 1 …Run Code Online (Sandbox Code Playgroud) 我正在使用第三方屏幕捕获应用程序 (Screenpresso)。它被配置为当我按下 时开始屏幕捕获PrtSc。确实它可以工作,除非Intellij 具有 Windows 焦点。事实上,要截屏代码,我必须专注于任何其他窗口按下PrtSc,然后选择 Intellij 中的区域。
我查看了所有设置,尤其是 Keymap 设置,但看不到任何其他已分配给PrtSc. 当然,我不太确定。当我尝试通过以下方式查找设置时
没有任何反应,因为按下PrtSc没有效果。
我知道这在以前版本的 Intellij 中对我有用(尽管我不记得是什么版本)。但PrtSc曾经像其他所有应用程序一样在 Intellij 中工作。
所以我想问题是,为什么Intellij 会吃掉PrtSc按键事件?我可以关闭它以便事件正确传递到我的专用屏幕捕获应用程序。
Intellij 2019.2.4 Windows 10、64b
android ×3
excel ×1
excel-vba ×1
git ×1
git-stash ×1
google-api ×1
java-8 ×1
junit ×1
liquibase ×1
nullable ×1
powermock ×1
printscreen ×1
security ×1
sorting ×1
sql ×1
sql-order-by ×1
sql-server ×1
sqlite ×1
testing ×1
tomcat ×1
unit-testing ×1
vba ×1
white-box ×1