JAVA関連のことを調べてみた2020年03月01日

JAVA関連のことを調べてみた2020年03月01日

SeleniumでShiftRightとShiftLeftを使い分ける

# 3行でわかる概要
* JavaのSelenium(4.0.0-alpha-4)の`WebElement::sendKeys`で左右Shiftキーを使い分けようとした際に少し詰まった
* 用意されている`Keys`は`SHIFT`/`LEFT_SHIFT`の中身が同じ
* `Keys`を使わずに文字列で`”ShiftRight”`と指定すると右Shiftとして認識される

# 問題

JavaでSeleniumを使用してkeyDownさせる場合、下記のようなコードを書く。

“`java
public void sendKey(WebDriver webDriver, CharSequence… keys) {
WebElement element = webDriver.findElement(By.className(“hoge”))
element.sendKeys(keys);
}
“`

`WebElement.sendKeys`は引数に`CharSequence…`を取るが、用意されているenum`Keys`を使用することが多い。
ただし、右Shif

元記事を表示

WebFluxのフィルタを実装してみる

引き続きWebFluxの話です。
前回までで主にController〜Service層でのリアクティブプログラミングの実装を紹介しました。

今回はリクエストの前後の共通処理として利用するフィルタの実装例を紹介します。

## FilterではなくWebFliterを実装する
Spring MVCでは `javax.servlet.Filter` を実装しますが、WebFluxでは `org.springframework.web.server.WebFilter` を実装します。

以下に、リクエスト処理の前後でログ出力するだけの、簡単なフィルタをそれぞれ実装してみました。
違いをみてみましょう。

### Spring MVCのFilter実装例

“`java:リクエスト処理の前後にログを出力するフィルタ(Filter)

@Slf4j
public class TimestampFilter implements Filter {

@Override
public void doFilter(ServletRequest request, ServletRe

元記事を表示

Android StudioでExpandableListView(折りたたみリスト)を使う方法

##はじめに
折りたたむことができるリストのメモになります。

##コード
“`string.xml

ExpandableListView

“`

“`activity_main.xml

元記事を表示

[自分用] javaプログラング基礎

#基礎構文
##変数・定数宣言

“`java
String str = null; //変数
final String STR = “msg”; //定数
long l = 1111111111L; //long型は最後にLで宣言
float f = 1111.111F; //float型は最後にFで宣言
double d = 1111.111; //小数点はdoubleになる
char c = ‘c’; //char型は”で
str = “a\na\ta”; //\n:改行 \t:タブ

//参照型としてintを宣言する
Integer I = new Integer(32);
int n = I.intValue();

//宣言の仕方の名前
Integer I2 = 2; // auto boxing
int i = 1; // auto unboxing
“`

| 型 | 初期値 |
|:—————–|——-

元記事を表示

StringUtilsの使えるメソッド整理

StringUtilsには使えるメソッドが一杯あったので使って便利と思ったものを整理しました。
#StringUtilsとは
https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/StringUtils.html

String型の文字列編集で色々と便利な操作をまとめたメソッドです。
Stringのメソッドとは違いヌルポが起きないように考慮してくれています。
nullチェックいらずになります。
StringUtilと似てるから注意

##isEmptyとisNotEmpty
isEmptyはStringでもあるけどこっちのはnullを許容、falseを返してくれる。
isNotEmptyはisEmptyの逆。

“`isEmpty.isNotEmpty
String a = “1234”;
String b = “”;
String c = null;

try {
System.out.printl

元記事を表示

【Java】分岐と繰り返し

# if文
:sunny: 分岐を行うことができる
:sunny: if のうしろの () には分岐条件を記入
:sunny: 条件式とブロックから成り立つ

分岐を行うことができるっていうのは、たとえば・・・

家に食パンある?
 → ある
  じゃあトーストにして食べよう!
 → ない
  パン屋へ買いに行こう!

のように条件によってプログラミングの処理が変更できるようにすることです。

“`例.java
public class Main {
public static void main(String[] args) {
boolean bread = true;
if (bread == true) {
System.out.println(“じゃあトーストにして食べよう!”);
} else {
System.out.println(“パン屋へ買いに行こう!”);
}
}
}
“`

3行目の 真偽値をあらわすboolean型の変数 bread に true(falseでもOK) を記入し

元記事を表示

【Java】文字列の比較と&& と ||

# 文字列の比較
“`例.java
number == 0
“`

上記のようなコードがあったとします。
意味としては変数 number に 0 が代入され、右側の 0 と等しい という意味になります。

では文字の場合は・・・?:thinking:

“`例.java
fruit == “りんご”
“`

になるんじゃないの??:thinking: と思ってしまいます。
じつは間違いです。
Java の場合は、文字列は == では比較できないということになっています。
ではどうするのかというと・・・

“`文字列の比較.
文字列型の変数.equals(比較相手の文字列)
“`

となります:smile:
なのでさっきのコードは

“`例.java
fruit.equals(“りんご”)
“`

となります:smile:

余談ですが、文字列に == を使ってもコンパイルエラーは起きません:sweat_smile:
ただ実行できるけど動きが変になるというタチの悪い不具合が起こります:sweat_smile:
コンパイルエラーが起きないだけにエラーをみつけるのが

元記事を表示

【Java】初心者用基礎命令文

# System.out.print(表示したい文字や数字など)
:sunny: 改行することなく画面に文字を表示する

普段よく使う System.out.println で作成すると・・・

“`例.java
public class Main {
public static void main(String[] args) {
String animal = “いるか”;
System.out.println(“私の好きな動物は”);
System.out.println(animal);
System.out.println(“です”);
}
}
“`

“`コンソール.
私の好きな動物は
いるか
です

“`

このように改行されて出力されます。
System.out.println → System.out.print に変更して出力してみると・・・

“`例.java
public class Main {
public static void main(String[] args) {
String animal = “い

元記事を表示

【Java】計算のしくみと演算子と型変換

# Javaの計算のしくみ
“`
5 + 4
“`

これは説明なくそのままです。
5 と 4 を足し算して 9 の答えをJavaが出してくれます。

では

“`
5 + 4 – 3
“`

の場合はJavaはどのように計算をするか?:thinking: というと、まず

5 と 4 を足し算して 9 を求めます。
そのあと 9 – 3 で引き算をして 6 を求めます。

ちなみにこの 5 と 4 と 3 を**オペランド**といい
+ と – を**演算子**といいます。

Javaが式に従って計算処理することを**評価**といいます。
オペランドと演算子を使ってだした計算結果を**化ける**といいます。
さっきの式の 5 + 4 – 3 でいうならば、まず 5 + 4 を評価して 9 に化ける。
そのあと 9 – 3 を評価して 6 に化ける。
という感じです:smile:

“`
5 + 4 * 3
“`

掛け算が混ざった計算式。
学校で習った順番と同じです:smile:

まず 4 ✕ 3 で評価して 12 に化けます。
そして 5 + 12 を評価して 17

元記事を表示

Struts2 iBasis DB連携ライブラリ関係のパス

##Spring設定ファイル
**・applicationContext.xml**
web.xml の中の\タグの中で任意で指定する。
WEB/INF/classes/ 直下がデファクト?

##JDBC (DBアカウント等)設定ファイル
**・datasource.properties**
ファイル名は任意。datasource.propertiesやjdbc.propertiesなど。
applicationContext.xmlの中の\でパスを定義する。
applicationContext.xmlの中の\タグでこのプロパティファイルの中で指定したDB情報をDAOjavaBeanクラスとバインドする。

##iBasic連携設定
**・sqlMapConfig.xml**
applicationContext.xmlの中の\タグで任意のパスを指定。
iBasisでのSQL文が書かれたxmlファイルパ

元記事を表示

JAVA(Map)

【Map】
キー(値につける名前)に対してキーに紐づく値を保持することができる。

Mapはインターフェースなので、インスタンスを生成するために実装クラスを使用する必要がある。
今回はよく使用されるHashMapクラスを使用。
初期化を以下のようにして行う。
Map<キーの型名, 値の型名> オブジェクト名 = new HashMap<>();

Map map1 = new HashMap();

次に「put」を使用して値を追加する。

map1.put(“春”, “サクラ”);
map1.put(“夏”, “ヒマワリ”);
map1.put(“秋”, “キンモクセイ”);
map1.put(“冬”, “シクラメン”);

「get」を使用して値を出力すると以下のようになる。

String name1 = map1.get(“冬”);
System.out.println(name1);

[シクラメン]

元記事を表示

JavaとPythonの基礎文法比較

  

#はじめに#
JavaとPythonの基礎文法を比較してみました。
Javaの文法が汚かったり、違う部分があればご指摘いただけるとありがたいです!

#目次#
[1.出力](#1出力)
[2.変数](#2変数)
[3.文字列と数値の結合](#3文字列と数値の結合)
[4.if文](#4if文)
[5.for文](#5for文)
[6.while文](#6while文)
[7.forとwhileでbreak, continue](#7forとwhileでbreak-continue)
[8.list](#8list)
[9.辞書](#9辞書)

#1.出力#

“`python:python
print(‘123’)
print(123)
>>>123
>>>123
“`

“`java:java
public class Main {
public static void main(String[] args){

System.out.println(“123”);
System.out.println(12

元記事を表示

WSL-UbuntuへのAdoptOpenJDK11のインストール

# はじめに
WSL(Windows Subsystem for Linux)へのAdoptOpenJDKをPPAで公開されているバイナリを使ってインストールする際につまずいたので情報をまとめたいと思います。

# 参考サイト
[AdoptOpenJDK installers](https://launchpad.net/~rpardini/+archive/ubuntu/adoptopenjdk)

# ポート監視の無効化
作業用のPCにはカスペルスキーがインストールされていますが、ポート監視の設定などを行わないとSSL認証などが行えずエラーになってしまいます。今回この設定のせいで2~3時間、悩むことになりました。

 1. kasperskyの管理コンソールから[設定]→[ネットワーク]を選択
 2.「暗号化された接続のスキャン」項目の「暗号化された接続のスキャンする」を無効化
 3. ネットワークポート項目の「設定したネットワークポートを監視する」の詳細項目を選択
 4. 80番と443番ポートの監視を無効化 ※下記図参照
![cap1.p

元記事を表示

eclipse.ini に java の場所を指定する

# eclipse 起動時の java を変えたいとき
eclipse 起動時にエラーになった場合とかに、java の場所を指定したくなった。

– java の場所 は
– `-vm` で設定する
– `-vmargs` の前に書く

“`text:eclipse.ini
・ ・ ・ ・ ・ ・
-vm
C:/java/jdk1.8.0_161/bin/java
-vmargs
-Dosgi.requiredJavaVersion=1.8
-Xms256m
-Xmx4g
・ ・ ・ ・ ・ ・
“`

元記事を表示

this()について

this()の意味が分からなかったので書き残しておきます。

# 使用例
プログラムを実行した時間を求めるコードです。

“`java:qiita.java
import java.util.*;

public class Main {
public static void main(String[] args) throws Exception {
System.out.println(new Date());

“`

実行すると

“`java:qiita.java

Fri Feb 28 14:22:03 UTC 2020

“`
new Date()で何が起こっているか確認すると

“`java:Date.class

public class Date
implements java.io.Serializable, Cloneable, Comparable
{
private static final BaseCalendar gcal =

元記事を表示

COTOHA 構文解析APIについてコメント

#掛かりうけ元は複数

>投稿2 [COTOHA API の構文解析 を Java でパースする](https://qiita.com/oyahiroki/items/a300eca1278f57d1106d)

のテストをしていて気づいたのですが、[APIデモ](https://api.ce-cotoha.com/demo) では
「嫁と娘は旅行に行った。」の解析結果について

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/110265/542fa82e-8147-d536-be7c-5fa97bc83a98.png)

のように出力されるので、これがてっきり正解をすべて表しているのかと思っていましたが、実際には

“`json

{
“id” : 2,
“form” : “娘”,
“kana” : “ムスメ”,
“lemma” : “娘”,
“pos” : “名詞”,
“dependency_labels”

元記事を表示

DBLINKを使用した Oracle Database で、DBLINK元と先のデータを取得して表示するJavaコードのサンプル

DBLINKを使用した Oracle Database で DBLINK元と先のデータを取得して表示するJavaコードのサンプルです。
某チャットの某質問で「ソース(情報源)はありますか?」と聞かれて「ぐぬぬ。」となったので、書いてみますた。彡(゚)(゚)

# 1. 環境と構成

下記の構成で検証してみました。

> Java → (JDBC) → User_A → (DBLINK) → User_B

環境は Virtualbox の下記環境を使ってます。初めから色々入ってて、セットアップもラクなんで。彡(゚)(゚)

> OTN の VirtualBoxイメージ で Oracle DB 19c環境 を 楽々構築
> https://qiita.com/ora_gonsuke777/items/b41f37637e59319796b4

# 2. User_A の作成とデータ挿入

まずは User_A を作成して、データを挿入します。

“`sql
export ORACLE_HOME=/u01/app/oracle/product/version/db_1
export P

元記事を表示

Selenideオプション一覧

#まえがき
Selenideを利用した自動テストを作成する場合、コーディングせずにSelenideにパラメータを与えておくだけで動作を切り替えられるオプションがあります。
これらを知り、活用することで無駄なコーディングを避けられるので、Selenideをガッツリ利用する場合にはあらかじめ把握したほうが無難です。

実際にオプションを読み込んでいる処理はSelenideConfig.javaにかかれているので、SelenideConfig上のコードとともに見ていきましょう。
ドキュメントの内容と自分が利用してきた経験を踏まえた簡単な説明と個人的な所感も記載しています。
間違ってたらごめんなさい。

#前提
今回の解説はselenideのバージョン5.7ベースに記載しており、公式ドキュメントによる解説は下記ページからも参照が可能です。
https://selenide.org/javadoc/current/com/codeborne/selenide/Configuration.html

#オプション一覧
##selenide.browser
活用度★★★
どのブラウザを利用するか指定

元記事を表示

Gradleに入門する

## Gradle概要

* GroovyベースまたはKotolinベースのDSLで書く
* [プラグイン](https://docs.gradle.org/current/userguide/plugin_reference.html)を活用することで車輪の再発明の防止というか一般的な流れの踏襲ができる
* 当然だが、自らの環境にあわせてカスタマイズする分は自作する必要がある
* [サードパーティプラグイン](https://plugins.gradle.org/)
* ビルドタスクを管理する
* 依存関係を管理する
* Antのラッパーになる
* **Gradleラッパーにより個別インストール不要**
* アップデートは下記のようにコマンド実行すると、次回コマンド実行時に必要なバージョンをダウンロードしてキャッシュされる。

“`shell:sample_upgrade_wrapper
# Version 6.1.1は2020/02/07時点最新
./gradlew wrapper –gradle-version=6.1.1 —

元記事を表示

51歳からの(現52)プログラミング 備忘 FileOutputStream android.content.Context.openFileOutput(java.lang.String, int)’ on a null object reference

こんなコードがあったとする

“`java:SampleActivity
Context context;
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContantView(R.layout.sample);
context = getApplicationContext();

new AsyncTask().execute();
}

public void fileWrite(){
try{
openFileOutput(“fileName”,Context.MODE_APPEND);
}
}
“`
“`java:AsyncTask
@Override
protected void onPostExecute(String s){
super.onPostExecute(s);

SampleActivity sampleA = new Sample

元記事を表示

OTHERカテゴリの最新記事