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

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

Cannot apply expression operators to method bindingとなった時の対応方法

– 環境
– CentOS Linux release 7.8.2003 (Core)
– Eclipse IDE for Enterprise Java Developers Version: 2020-03 (4.15.0)
– openjdk version 11.0.7

# 事象 : JSFの「!(否定)」でなぜか怒られている

“`xhtml:hoge.xhtml

“`

“`text:エラーメッセージ
Cannot apply expression operators to method binding
“`

# 原因 : 書き方がいまいち?
英語のサイトが多くていまいちちゃんとした原因わからず。
誰か説明してほ

元記事を表示

初心者がObject指向を理解するまでに行ったこと

# Object指向を理解するまでに行ったこと
– Javaの基本文法の復習
– 参考書を読破
– スッキリわかるJava入門 第2版

## そもそもObject指向とは
 参考書には、下記のように記載されていました。
 「オブジェクト指向とは、 **ソフトウェアを開発するときに用いる部品化の考え方** のこと。」
 
 とはいえ、部品化とだけだと理解が難しいと思います。
 そこで、オブジェクト指向を理解するためにこのような手順で理解していきました。

 1. Object指向を使うメリット
 2. Object指向の本質の理解
 3. Object指向の3大機能

### 1. Object指向を使うメリット

 簡単にいうと、楽に開発できることです。
 例えば、複数同じ実装をする時に、Object指向を使うと1回で済みます。
 また、私たちが理解しやすい構造になるため、複雑な内容でもミスを減らし、
 実装できるようになります。

 オブジェクト指向は、
 「プログラミングで作成する仮想世界を現実世界に当てはめること」
 が最大のメリットです。

 したがっって、
 「開発時間を

元記事を表示

java エスケープ解析とは

## 前書き

Graalを触っていて、部分的エスケープ解析が何のこっちゃ分からなかったから、調べたメモ。

↓Graal・GraalVMに関して書いた記事
https://qiita.com/kinshotomoya/items/39a821dd6a6a52202c0a

サンプルコードは、scalaで書いています。

## エスケープとは
オブジェクトの参照がメソッドの外や、違うスレッドに存在すること。
エスケープすると、不特定多数の場所からオブジェクトへ参照できる。

## エスケープの条件
実際にのコードでは、どのような場合にオブジェクトがエスケープされていると言えるのか?
主に、以下の3つの条件がある。

1. メソッドの引数に指定
2. returnで返す(戻り値に指定する)

### 1. メソッドの引数に指定

Objectのインスタンスであるaへの参照は、hogeメソッドを超えて参照できる。
fooメソッドからも参照できる

“`scala
case class Object()

object Test {
def hoge: Object = {

元記事を表示

【JavaServlet】千里の道も一歩から 四歩目

#進行状況
前回でようやく
`login.jsp → LoginServlet.java → mypage.jsp`
の遷移ができるようになりました。
ちなみに、mypage遷移時のURLは
`http://localhost:8080/ServletApp/mypage.jsp`
となりますが、もし最後の拡張子が気になる場合はweb.xmlに

“`web.xml

mypage
/mypage.jsp


mypage
/ServletApp/mypage

“`

を加えてあげると、遷移時のURLが
`http://localhost:8080/ServletApp/mypage`
になります。

##その他のデータの受け渡し方法
実は、サーブレット間の

元記事を表示

SeaserのBeans.copyと存在しないプロパティ

# 主旨

業務で
`org.seasar.framework.beans.util.Beans#copy`
を使うことがたまにあります。

便利なのですが、頻繁には使わないので、使うたびに以下に2点が不安になります。

– コピー元にはあって、コピー先にないプロパティがあるとエラーになる?
– コピー元になくて、コピー先にあるプロパティがあるとエラーになる?

[Javadocもこんな感じ](http://s2container.seasar.org/2.4/s2-tiger/ja/apidocs/org/seasar/framework/beans/util/Copy.html#execute())で上記のことについては書いていないので、テストしてみました。

# 結論

– いずれもエラーにはならない。
– コピー元になくてコピー先にあるプロパティは、影響を受けない(事前に代入された値のまま)。

# 実行したコード

“`Java

import org.seasar.framework.beans.util.Beans;

public class BeansTest {

元記事を表示

納期守れない系エンジニアが遅延無しでちょっと頼りにされるまでに学習したこと

#初めに
この記事は、私が納期をまともに守れなかったころから、
遅延しなくなり後輩の遅延を手助けするまでに
学習したことや心がけていること及び失敗談を記述します。
暇つぶしに読んでいただければ幸いです。

#前提:どれぐらいできなかったか
・イケると思った機能が1週間遅延して更にバグまみれ。
・プロトタイプ版開発に時間をかけすぎて仕様変更によって結局遅延。
・ユーザーが欲しいと思った機能が、完成とほぼ同時に不要になってしまった。

この記事の内容は、主観と経験に基づくものが多いです。筆者はよく言っても中堅エンジニア
なので、記述内容が必ず参考になるとは限りません。

#勉強した事
##交渉&見積もり編
**・正確な工数見積もりは「不可能」である事を認識する。**
実際に機能を作る前には、「だいたいどれくらいでできるのか」という事を絶対に確認されます。
その時に、過去の経験からn日でできるな…と考えても、それはたいてい失敗します。
なぜなら、全く同じ機能を2度作ることは殆どない為です。かなり近しい事をしたことがあっても
前回とは違う部分が必ずあります。そして大抵の場合、そこが大きなボトル

元記事を表示

Eclipse上でFlywayを追加・設定・実行

# EclipseプロジェクトにFlywayを追加・設定・実行までの手順

今回はmavenプロジェクトでflywayを追加などを説明

## 追加手順

pom.xmlにFlywayのdependencyを追加する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/546056/57acfdc6-d199-30ed-bcb7-4d12681fb6b9.png)


org.flywaydb
flyway-core

## 接続設定

pom.xmlに

project > build > plugins の中にpluginを追加
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/546056/d7107dbe-a0df-5199-fdb8

元記事を表示

【android studio(version4.0)】project作成まで

##androidstudioダウンロード

以下から最新版のandroid studioをダウンロードしましょう。
https://developer.android.com/studio?hl=ja

##newファイルの作成
start a new Android studio projectをクリックしたら新規ファイルが作成されます。
スクリーンショット 2020-06-09 1.43.27.png

ビュー画面のテンプレートを選択します。特にこだわりが無ければEmpty Activityでいいと思います。

スクリーンショット 2020-06-09 1.47.00.png例外の際、waiting for debuggerが再表示されLogcat例外が見れない問題がある

・問題の解決には至っていませんが、原因までは突き止められたので、もしよかったらご参照頂ければと思います。
・アプリ開発の実績があまり無い人間が書いているので間違っている内容かもしれないという事は十分考慮の上ご参照下さい

Android studioで例外が出た際、waiting for debuggerが出てしまって、その時例外を見ようと思ってもLogcatが消えてしまって見れないという問題がありました。

このwaiting for debuggerですがデバッグを開始する時に毎回でます。

出る時でない時があるので、少しどのような条件で出るか試してみたところ下記の様な条件で出ました。
例外は

“`
int[] i = null;
for(int a:i){
}
“`
とnullのint配列に拡張forでアクセスしRuntimeExceptionを発生させました。

Logcatが見える時と見えない時がある為、どのような条件の時見えて、どのような条件の時見えないのか試したところ、下記の様な条件でした。
前提
1.Activityを3つ作成(Activity1、A

元記事を表示

ネイティブアプリ実装の選択肢考察(執筆中)

# ❶ はじめに

## 1. 要約
実務経験2年半のWebエンジニアが、はじめてネイティブブアプリを実装するにあたって、どの言語を使用するかの考察をおこないます。

## 2. 前提
今までに経験したプログラミング言語は、Ruby・Python・JavaScript、フレームワークは、Rails・Djnago等です。元々、非理系からエンジニアに転職したので、基礎は結構あまあまです。気合いでいくつもの現場を乗り越えて来ました。今回は知識をしっかりと深めるためにも記事を投稿することにしました。

# ❷ Webアプリとネィティブアプリの違い

## 1. Webアプリ
– Webブラウザー(Chrome・Safari・Firefoxなど)上で動作するアプリケーション。
– OSに依存せずに動作する。そのため、プラットフォームごとの開発が不要。
– オンライン環境で動作する。
– ダウンロードなどの手間がからない。
– 検索・SNS・ダイレクト(URL直打ち)の流入が見込め、チャネルが広い。

※ PWA(プログレッシブ・ウェブ・アプリケーション)を実装すれば、オフライン動作・ローカル通知

元記事を表示

Automation Anywhere A2019 の共通開発部品であるパッケージを作成する #2~SDKサンプルを変更してオリジナルパッケージを構築!

Automation Anywhere A2019では、「パッケージ」という共通開発部品を作成、配布することでBot作成を効率化することができます。

先日オンラインで開催された[Automation Anywhere社主催Developer Meetup Vol.2](https://rpasouken.com/event-2/webinar/2488/)でも解説されていた内容を参考にしながら概要をまとめてみました。Javaのビルド環境やSDK関連ファイルのダウンロードとセットアップは、前回の記事『[Automation Anywhere A2019 の共通開発部品であるパッケージを作成する #1~まずはSDKサンプルをそのままビルドして使う](https://qiita.com/RPAbot/items/3ea4216f1b94f76df0b3)』を参照してください。この記事では、これらのセットアップは完了してビルドもできる環境になっていることを前提として進めます。

この記事ではオリジナルアクションとして、文字列の中の半角文字を全角文字に変換するアクションを作成します。

**

元記事を表示

【Bukkit,Spigot,Paper】plugin.yml も build.gradle.kts を書く

## plugin-yml
https://github.com/Minecrell/plugin-yml

これを使います。例には `build.gralde` もあるのでそちらがいい人はやってみてください。

ちなみに、kotlin-dsl の例は間違っています。コマンドやパーミッションの設定が出来ません。
`”test”` を `register(“test”)`
`”testplugin.*”` を `register(“testplugin.*”)`
に変更すればできます。詳しくはこの記事の下の方で解説しています。

## Gradle
build.gradle.kts だけを用意してあります。~~build.gradle の例、誰か書いてくれませんかね~~
自分に合ったものを選んで ▶ を押してください。
**`@TODO` になっている箇所を編集してください**

### build.gradle (Groovy)
待ってます。

### build.gradle.kts (Kotlin)

`build.gradle` になっている人はファイル名を変更して、`buil

元記事を表示

インクリメント演算子、デクリメント演算子

単体ではさほど難しくはないけど、束になってかかってくるとややこしいのでまとめです。

#インクリメント演算子、デクリメント演算子とは

– インクリメント「++」・・・変数の値に1を加算する
– デクリメント「–」・・・変数の値に1を減算する

#前置と後置

## 前置・・・先に演算してその結果の値を代入する

### 例
int a = 5
int b = ++a
↑aに1を加算してからbに代入(b=6、a=6)

## 後置・・・値を代入してからあとで演算する

### 例
int a = 5
int b = a++
↑bに代入してからaに1を加算(b=5、a=6)

#ややこしい計算の例

int a=5
int b = a++ + ++a + –a – a– -a

とかやると
b = 5 + 7 + 6 – 6 – 5

となり、答えは7

元記事を表示

IntelliJ IDEA 初心者のための便利機能 (重要度★4)

重要度★5の続きです。
[IntelliJ IDEA 初心者のための便利機能 (重要度★5)](https://qiita.com/bana3194/items/d1696044371e2072b06f)
主に★5で扱った事に関する項目で、より便利になる機能を紹介します。
#更に便利になる設定項目たち
今回はほとんど設定画面での操作になります。設定画面はここから開けます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/323695/9823ce45-2c06-b775-c6f7-4ae5fb534045.png)

### ・ライブテンプレート設定
この設定を活用するだけで、作業効率は数割増しになります。
設定→エディター→ライブテンプレートと選ぶと、この画面が出てきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/323695/32da1ca6-ce13-38f9-029a-11ee

元記事を表示

IntelliJ IDEA 初心者のための便利機能 (重要度★5)

IntelliJというか、エディター初心者のための解説ページです。このページでは、特に重要な機能やショートカットをまとめています。記載してあるショートカットは全てWindowsのものです。
# 絶対覚えてほしい便利機能
###**・元に戻す**
ショートカットキーの王様(と個人的に思っています)。これだけは絶対覚えてほしい。WordやExcelなんかでも使えます。
Undo、アンドゥと呼ばれる機能です。「行った作業を取り消す」という動作をしてくれます。CtrlとZの同時押し(以下、`Ctrl+Z` というように記述します)で動作します。何回も押せば、更にさかのぼって作業を取り消せます。

やべぇ間違えて消しちゃった!でも` Ctrl+Z` を押せば元通り!
![Undo2.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/323695/27b60fa5-3cd1-e0a6-3593-40e6be9386c7.gif)
やべぇ間違えてコピペしすぎた!でも`Ctrl+Z` で元通り!
![Undo_2.gif]

元記事を表示

美大生のためのプログラミング入門(随時更新中)

※ Qiita では、本文部分のみの印刷に苦労します。そのため、同じ内容を以下のページにも掲載しています。プリンツアウトしたり PDF 化したい人は、こちらのページを利用して下しさい:

[http://gurakura.sakura.ne.jp/series/美大生のためのプログラミング入門/](http://gurakura.sakura.ne.jp/series/%E7%BE%8E%E5%A4%A7%E7%94%9F%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AE%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E5%85%A5%E9%96%80/)

——————–

**第 0 章 はじめに**
https://qiita.com/iigura/items/b5e368bc8bc5e1b86f8b

**第 1 章 準備 – Processing のインストール**
https://qiita.com/iigura/items/d7df16d1a3d

元記事を表示

美大生のためのプログラミング入門:直線をより魅力的に

※ Qiita では、本文部分のみの印刷に苦労します。そのため、同じ内容を以下のページにも掲載しています。プリンツアウトしたり PDF 化したい人は、こちらのページを利用して下しさい:

http://gurakura.sakura.ne.jp/hellomondrian/strokeweight/

# はじめに
 line 関数の使用により、最低限度の表現ではありますが、プログラムで絵を描けるようになりました。しかし、これだけではまだまだ表現力が足りません。このセクションでは線の太さや色を変更する方法を説明します。

# 線の太さを変える
 まずは線の太さを変える方法を示します。線の太さは strokeWeight 関数で設定します。

stroke 関数の使い方ですが、strokeWeight(20) などとし、引数に使用したい線の太さをピクセル数で指定します。下の例だと線の幅は 20 ピクセルとなります。

“`Java
background(250,250,250);
size(500,500);

strokeWeight(20);
line(70,100,450,300

元記事を表示

美大生のためのプログラミング入門:準備編 Processing をインストールしよう

※ Qiita ではコンテンツ部分のみの印刷が簡単にはできません。本文部分をプリントしたい人や PDF 化したい人は http://gurakura.sakura.ne.jp/hellomondrian/setupprocessing/ を見て下さい(同じ内容です)。

# はじめに
 このシリーズでは、Processing というソフトウェアを用いて、プログラミングを学んでいきます。説明されているプログラムを実際に動作させるには Processing が必要となります。この文書では Processing のインストール方法と簡単な動作確認について説明します。

# ダウンロード&インストール
 Processing は、[processing.org](http://processing.org/) で配布されています。無料のソフトウェアです。

[http://processing.org](http://processing.org/) にアクセスすると、次のような画面が現れます。

![Processing.org のトップページ](http://gurakura.sakura

元記事を表示

JavaでOpenCVを使う

#はじめに
JavaでOpenCVライブラリを使いたかったのですが,意外とてこずったのでその手順を書き留めておきます.周辺知識の整理として,Javaのライブラリの使い方,packageなどの基礎的なことの理解にも繋がったので,そこにも触れておきます.
①ターミナルでコンパイルを行うときと,②IDE(特にIntelliJ)を使ってコンパイルするときの方法の両方を記しておきます.

#環境
– macOS Catalina 10.15.5
– [Java OpenJDK 13.0.2](https://www.oracle.com/java/technologies/javase-jdk13-downloads.html)
– [OpenCV](https://opencv.org/) 4.3.0

#Javaのインストール
念のためJavaのインストール方法も残しておきます(macOS).Homebrewを使ってインストールをしました.

“`zsh
# install Homebrew (if needed)
ruby -e “$(curl -fsSL https://raw.git

元記事を表示

美大生のためのプログラミング入門:はじめに

※ Qiita では、コンテンツのみの印刷に苦労するため、同じ内容を以下のページにも掲載しています。プリンツアウトしたり PDF 化したい人は、こちらのページを利用して下しさい:

http://gurakura.sakura.ne.jp/hellomondrian/intro/

# はじめに
 この文書は、とある美大で実際に行った授業のテキストを元に作成されています。理系学生と異なり、美大生は必ずしもプログラミングの素養があるとは限りません。

しかし、美術大学においても、メディアアートやインタラクティブなインスタレーションなど、プログラミングの知識が求められることが多い状況となっています(状況を知っている方からすれば「何をいまさら」という感じでしょうが…)。そのため、美大生にも理解できるよう、できるだけ具体的な例を多く示して分かりやすい説明を心がけました。

 もちろん、美大生の中にも驚くほどプログラミング能力が高い学生は存在します。とは言っても、平均としては(当たり前ですが)理系の大学生と比較すると、より丁寧な説明が必要であると経験的には感じています。そのため、理解の早い人に

元記事を表示

OTHERカテゴリの最新記事