- 1. はじめに
- 1.1. 準備
- 1.2. コード
- 1.2.1. The Badass Runtime Plugin+Gradle+JPackageで自己完結型Javaアプリケーションインストーラを作る&パスも通す
- 1.2.2. [サーブレット&JSP]ArrayListを使って文字を表示させる
- 1.2.3. 初心者による初心者のためのSpringBoot
- 1.2.4. Javaの引数と戻り値
- 1.2.5. 【ちょっとアレンジ】Spring bootのControllerクラスで定義したパスを一覧として取得する
- 1.2.6. ArrayListで遊んでみる
- 1.2.7. Jetpack Composeを現場のアプリ開発で使用してみて思ったこと
- 1.2.8. 【Java, Slack】Spring で Slack メッセージ送信
- 1.2.9. SpigotプラグインにおけるTagを用いた処理の制御
- 1.2.10. Spigotにおいて看板を用いてプレイヤーからの入力を取得する
- 1.2.11. SpringBoot でよく使うアノテーション
- 1.2.12. JavaでSymbolブロックチェーンのトランザクションを送信する
- 1.2.13. 【Kotlin】引数がデフォルト引数か否かを判定する
- 1.2.14. JavaGoldSE8に受かったので(後編)
- 1.2.15. 【SpringBoot】開発環境作成(VPSにデプロイ)
- 1.2.16. Robocode Tank Royale Debugの仕方
- 1.2.17. 【自作】SpringBatchを管理できるのジョブフロー
- 1.2.18. 長方形の画像を正方形にする方法
Robocode Tank Royale より知的に弾を打つ(三角比)
これらの続き
https://qiita.com/JQinglong/items/7ec02a689f78abbd3324
https://qiita.com/JQinglong/items/0415d200d66c152edd10
https://qiita.com/JQinglong/items/c43b60f0efa0742eaa7b
前回の最後に、知的に弾を打つためのメソッドをCornersからパクりましたが、今回は、これを発展させます。
三角比ネタが盛り上がっているうちにここまできたかった・・・
## 問題の所在
現在、基本的には敵をスキャンできたらそこに対して弾を打っているわけですが、そこに向けて打っても、止まっている敵でない限りはそこにはもう敵はいないことが多いわけです。
これに対応していきます。## 時間による移動距離の計算
基本情報はこちらになります。
https://robocode-dev.github.io/tank-royale/articles/physics.html#movement
まず、とっかかりとなるのは、
[distanc
Selenium + ModHeader で RequestHeader を変えてみた
はじめに
Selenium と Chrome拡張ツールの ModHeader を使ってRequestHeaderの「User-Agent Client Hints」を書き換えてページアクセスする方法。
今回はモバイル判定で利用する「sec-ch-ua-mobile」を「?1」に書き換えます。
## 環境
Java8
Selenium 4
WebDriverManager準備
事前に「chrome-modheader」をダウンロードしておきます。
https://github.com/modheader/modheader_selenium/tree/main/chrome-modheader
コード
“`java:Example.java
package example;
import java.io.File;
import java.nio.file.Path;
import java.nio.file.Paths;
import org.openqa.selenium.WebDriver;
import org
The Badass Runtime Plugin+Gradle+JPackageで自己完結型Javaアプリケーションインストーラを作る&パスも通す
# はじめに
どーもnaotikiKtです。とあるコンソールアプリにJavaを同梱して配布したくなったのでその時のハマりポイントとかを備忘録的な感じで書いておきます。**本記事はInteliJ IDEA&Kotlinユーザーの方向けです。**
# JPackageて何?
JDK 14から含まれるようになったJavaを同梱した様々なプラットフォームのネイティブインストーラを作成できるツールです。
もとはjavafxpackager(JDK 7),javapackager(JDK 11)て名前だったらしいです。https://docs.oracle.com/javase/jp/14/jpackage/index.html
# 環境
Windows,Linux両方のインストーラーを作りたいので両方の環境を用意する必要があります。“`text:Windowsの環境
OS: Windows 11
JDK: Amazon Corretto Version 17.0.3 (JDK 14以上が必要)
IDE: InteliJ IDEA 2022.1.3
“`“`text:Ubu
[サーブレット&JSP]ArrayListを使って文字を表示させる
### formで入力した値をArrayListに格納して表示させる。
### form入力
![スクリーンショット 2022-06-25 16.29.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/675188/e9c3d6fe-e681-bf11-b218-940685af9794.png)### 入力結果
![スクリーンショット 2022-06-25 16.31.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/675188/cea839c8-021e-c59c-c38b-2d92d2f1ee08.png)“`java:form.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
初心者による初心者のためのSpringBoot
# 環境構築
Eclipseをダウンロード
以下のURLへアクセス
URL:https://mergedoc.osdn.jp/– Eclipseの最新版を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2676412/c105bb94-9ff3-5113-8646-fe1891266a71.png)– JavaのFull Editionをdownload
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2676412/27fffb92-4a87-2007-bcd4-905c8f9715aa.png)あとは解凍してEclipseを起動してください
:::note info
これで環境構築は完了になります!!
Spring Tool Suite (STS)などはFull Editionにすでに入っているのでDownLoadは不要です。
:::# HelloWordを表示しよ
Javaの引数と戻り値
Javaでは、ある機能を持ったメソッドがあり、そのメソッドにデータを渡すことで、メソッドの機能を利用することができます。メソッドに渡されるデータを「引数」と呼びます。詳細は以下の通りです。
# 引数とはなんぞや
引数とは、メソッドに渡すデータのことで、メソッドの後の「( )」内にある。例えば、printlnメソッドでは、以下の部分の「コンニチハ!」が引数になります。
“`java
println(“コンニチハ!”);
“`
引数には数値データ、文字データなどを用いることができ、引数の数は倍数で指定することができます。複数の引数を使用する場合は、「,」で区切られます。引数は、第1引数、第2引数、第3引数の順で呼び出されます。
“`java
メソッド名(第1引数,第2引数,第3引数,);
“`
# 戻り値とはなんぞや
メソッドに引数を渡した結果、返されるデータを戻り値と呼びます。たとえば、maxメソッドは、数値の大きさを比較して大きい方を返すメソッドです。以下の例では、maxメソッドの第1引数に「2」、第2引数に「5」が渡されています。
“`java
Math.max(2,5)
【ちょっとアレンジ】Spring bootのControllerクラスで定義したパスを一覧として取得する
## やりたいこと
APIの本数が増えてきたので、実装済みのAPIのURIの一覧を出力したい
→[Spring bootのControllerクラスで定義したパスを一覧として取得する](https://qiita.com/shigeshibu44/items/886efb44c8c573c3ba6b)の内容の踏襲でほぼいけたのですが、PJの実装ルール的に少し考慮が必要な部分があったので、その部分を書き記しておきます
## アレンジした部分
クラスに@RequestMappingを付与して基幹部分のパスを、メソッドにリクエストメソッドに応じたアノテーションを付与して相対パスを定義するルールなので、以下2点実現できるように手を加えました。
* リクエストメソッドに応じたアノテーションからリクエストメソッドと相対パスを出力する
* クラスに定義された親パスとメソッドに定義された相対パスの関係性が分かるように出力する“`参考記事のControllerクラスをループする部分改変.java
// 略
for (BeanDefinition def
ArrayListで遊んでみる
“`java
package sample;import java.util.ArrayList;
//Parsonクラス
class Parson {
private String name;//コンストラクタ
public Parson(String name) {
super();
this.name = name;
}//gettar
public String getName() {
return name;
}//setter
public void setName(String name) {
this.name = name;
}
}public class Array{
public static void main(String[] args) {Parson p1 = new Parson(“加藤”);
Parson p2 = new Parson(“佐藤”);
Parson p3 = new Parson(“伊藤”);
Parson p4 = new Parson(“松原”);A
Jetpack Composeを現場のアプリ開発で使用してみて思ったこと
最近、Androidのアプリ開発においてJetpack Composeを使用する機会が増えました。
ということで、私が特に現場でJetpack Composeを使用してみて感じた(ている)ことを書いていこうと思います。(2022/6/24時点の感想)
知識不足で間違っている点あればご指摘ください。# 良いと感じている点
### レイアウトの変更・管理がしやすい
– Kotlinコードでレイアウトを書いていくので、個人的にXMLベースよりコードのネスト構造が浅くなる(りやすい)傾向があります。
– Kotlinコードで管理するので、XMLファイルといった形式の異なるレイアウトファイルを管理する必要がほぼなくなります。見るのがKotlinコードに一元化されるので管理がしやすいです。
– 同じKotlinファイル内に複数のComposable定義を記述できるのでグルーピングしたい時とか便利個人差はあるので、上記はいまいちピンと来ない方がいるかもしれませんが、XMLよりKotlinに慣れ親しんでいるエンジニアは頷けると思います。
### 状態に応じたUIの出しわけがやりやすい
その
【Java, Slack】Spring で Slack メッセージ送信
# 背景
– Springプロジェクトで Slack にメッセージを送りたい(Apache Velocity テンプレートで)# 環境
– Spring Framework 4
– slack-api-client 1.XX
– Apache Velocity 1.7
– Java 8# 参考リンク
https://slack.com/intl/ja-jp/help/articles/215770388-API-%E3%83%88%E3%83%BC%E3%82%AF%E3%83%B3%E3%81%AE%E7%94%9F%E6%88%90%E3%81%A8%E5%86%8D%E7%94%9F%E6%88%90https://slack.dev/java-slack-sdk/guides/composing-messages
# 基底クラス
– AbstractSlackService:使いたいサービスで extend して使うイメージ
“`java:AbstractSlackService.java
public abstract class AbstractSlackS
SpigotプラグインにおけるTagを用いた処理の制御
## 最初に
~~今回はいつものダラダラ解説ではないです。~~# Tagを用いて処理の実行を制御する
## Tagの操作
処理の条件にはTagを使いましょう。
裏側でファイルやデータベースを用いて判定してもいいですが、なにかと用意が面倒くさいと思います。
というわけでマインクラフトに搭載されているTagという機能を使って処理の制御をしてみましょう。### Tagの付与
Tagの付与は簡単です。
“`
player.addScoreboardTag(“Tag名”);
“`
で付与することができます。
付与することのできるTag名には一部使うことのできない記号があるので注意しましょう。:::note warn
マインクラフト側からでは空白、/は使用することができないのでプラグインでも同じだと思われます。
またこれら以外にも使えない文字があると思われます
:::### Tagの取得
TagはSetに格納されているのでListのように番号を指定して取得することができません。
toArrayなどを用いれば全要素の取得をすることができます。### Tagの存在確認
タグ名が
Spigotにおいて看板を用いてプレイヤーからの入力を取得する
## 最初に
看板でプレイヤーからの入力を取得する方法を雑に書きます。## ステップ1
今回はプレイヤーの座標に看板を設置して入力を取得していきます
“`
Location loc = player.getLocation();
Block block = loc.getBlock();
block.setType(Material.OAK_SIGN);BlockState signState = block.getState();
Sign sign = (Sign) signState;
sign.update();
player.openSign(sign)
“`
おわりです。……嘘です。少し解説します。
## 解説
1行目:
プレイヤーの座標(Location型)を取得2行目:
`Location loc = player.getLocation();`で取得した座標のブロックを取得3行目:
`Block block = loc.getBlock();`で取得したブロックをオークの看板に置き換える4行目:
`Block block = lo
SpringBoot でよく使うアノテーション
# はじめに
業務でよく使っていたアノテーションについて備忘録兼解説です。# アノテーション
## @RestController
JSON 形式などで返却するコントローラークラスに対して付与するアノテーション。
コントローラーには、ロジックを含む処理は入れずに、サービスからレスポンスを受け取って、そのまま返却するイメージ。“`
@RestController
public class SampleController {@GetMapping(“/”)
public SampleResponse findSampleResponse() {
…
“`
似たようなやつで、@Controller は HTML 形式のレスポンスに利用される。## @Service
サービスクラスに付与する。「サービスクラスですよー」って宣言しているみたいな感覚で使ってた。
サービスクラスでは、値をフロントエンドで扱いやすくするために、整形して Entity クラスに詰めるみたいなことをやる。
“`
@Service
public class SampleService {
JavaでSymbolブロックチェーンのトランザクションを送信する
この記事は「自分の得意なプログラミング言語でSymbolブロックチェーンを動かす方法」をJavaで実践したものです。
https://qiita.com/nem_takanobu/items/09b6b687f3cbe10af945
ほぼすべてのロジックを @Toshi_ma さん(Twitter:[toshiya_ma](https://twitter.com/toshiya_ma))に作成していただきました。ありがとうございます。
### pom.xml
“`xml
commons-codec
commons-codec
1.15
関連する記事
OTHERカテゴリの最新記事
-
- 2024.09.19
JavaScript関連のことを調べてみた
-
- 2024.09.19
JAVA関連のことを調べてみた
-
- 2024.09.19
iOS関連のことを調べてみた
-
- 2024.09.19
Rails関連のことを調べてみた
-
- 2024.09.19
Lambda関連のことを調べてみた
-
- 2024.09.19
Python関連のことを調べてみた