タグ

関連タグで絞り込む (343)

タグの絞り込みを解除

classに関するItisangoのブックマーク (103)

  • C# で JSON をシリアル化する方法 - .NET

    この記事では、System.Text.Json 名前空間を使用して JavaScript Object Notation (JSON) にシリアル化する方法について示します。 Newtonsoft.Json から既存のコードを移植する場合は、Newtonsoft.Jsonに関する記事を参照してください。 JSON を文字列またはファイルに書き込むには、JsonSerializer.Serialize メソッドを呼び出します。 次の例では、JSON を文字列として作成します。 using System.Text.Json; namespace SerializeBasic { public class WeatherForecast { public DateTimeOffset Date { get; set; } public int TemperatureCelsius { get;

    C# で JSON をシリアル化する方法 - .NET
  • MessageQueue クラス (System.Messaging)

    重要 一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。 public ref class MessageQueue : System::ComponentModel::Component, System::Collections::IEnumerable [System.ComponentModel.TypeConverter(typeof(System.Messaging.Design.MessageQueueConverter))] public class MessageQueue : System.ComponentModel.Component, System.Collections.IEnumerable [System.Compo

    MessageQueue クラス (System.Messaging)
  • コンストラクタの正しい使い方

    コンストラクタとは newでインスタンス化するときに呼ばれる便利な初期化記述用のメソッドです。DTOなどでは、これを記述しない例も少なくありません。 よくない使い方 メソッドを記述する手間を省くためだけのコンストラクタ よくあるのが、以下のような使い方でしょう。 class User{ private Integer id; private String name; public User(Integer id, String name){ this.id = id; this.name = name; } @Override public String toString(){ return String.join(",", id.toString(), name); } } class Main{ public static void main(String[] args){ User

  • SpringのRCE脆弱性(CVE-2022-22965)について

    はじめに Log4jやStruts2など、Java製ソフトウェアにおいてリモートからの任意のコード実行(RCE)の脆弱性が目立つ時代になってしまっていますが、これにさらにSpringも加わってきました。この記事では特にCVE-2022-22965に焦点を当て、技術的な視点からの解説を行ってみます。 なぜJavaアプリでRCEとなるのか? Javaの(特にウェブアプリケーションで)RCEとなるパターンはいくつか知られており、以前こちらの記事にまとめました。今回のCVE-2022-22965はこの記事の「3. クラスローダを操作できてしまうパターン」のパターンになります。 なぜクラスローダを操作できるのか? そもそも「クラスローダの操作」とは何を意味しているのでしょうか。この文脈では、Javaのプロセス内のクラスローダ系のクラスのインスタンスの、getterやsetterのメソッドを攻撃者が実

    SpringのRCE脆弱性(CVE-2022-22965)について
  • Spring4Shell の任意コード実行でわかったことをまとめる!

    注意! こちらの記事は自分の解釈を多く含みます。 十分に注意し、念のため検証してから情報を利用してください! この記事の内容と対象 この記事では、以下の内容に触れます。攻撃原理をわかった範囲でまとめるので、なにかのお役に立てば幸いです。 Spring4Shellの脆弱性の全体像 なぜJDK9.0以上のみ限定なの? なぜtomcatで影響は受けているの?ほかは? 脆弱性の概要 SpringShell RCE vulnerability: Guidance for protecting against and detecting CVE-2022-22965 によると 以下の条件を満たしているときに 任意コード実行 につながると書かれています。 Running JDK 9.0 or later Spring Framework versions 5.3.0 to 5.3.17, 5.2.0 t

    Spring4Shell の任意コード実行でわかったことをまとめる!
  • Windows 10で始めるC言語開発(26) WindowsでC言語開発! ウィンドウを作る

    Microsoftのチュートリアルで学んでいこう 前回までで、Windows APIを使ってモーダルダイアログボックスを作成した。短いソースコードで実際に動作するウィンドウプログラミングを体験するものとして、ダイアログボックスを表示するMessageBox()はわかりやすいものだったと思う。今回から、ウィンドウを作成する基的なコーディング方法を取り上げていく。 Windows APIを利用したウィンドウプログラミングとしては、Microsoftが提供している次のチュートリアルに沿って学習を進めるのがよいだろう。比較的短く簡潔にまとまっており、説明もわかりやすい。 Module 1. Your First Windows Program - Win32 apps | Microsoft Docs ただし、上記チュートリアルに掲載されているサンプルソースコードは、現在ではそのままではビルドで

    Windows 10で始めるC言語開発(26) WindowsでC言語開発! ウィンドウを作る
  • TypeScript における変性(variance)について - 30歳からのプログラミング

    プログラミングの型システムに関する記事を読んでいると、共変や反変といった用語が出てくることがある。 TypeScript や Flow についての記事でも、見かけることがある。 それらは TypeScript を使う上で必須の知識ではないが、把握しておくに越したことはない。 この記事では、TypeScript を題材にして、変性について説明していく。 TypeScript に関する議論を理解できるようになることがこの記事の目的であり、より詳細な、学術的、数学的な内容には踏み込まない。 この記事の内容は、TypeScript のv3.9.5で動作確認している。 変性 変性(variance)とは、任意の型Tに対してどのような性質を持つのか示したものであり、以下の 4 種類がある。 不変性(invariance) Tそのものが必要 共変性(covariance) Tそのものか、そのサブタイプが

    TypeScript における変性(variance)について - 30歳からのプログラミング
    Itisango
    Itisango 2021/11/26
    “変性(variance)とは、任意の型Tに対してどのような性質を持つのか示したものであり、以下の 4 種類がある。 不変性(invariance)共変性(covariance)反変性(contravariance)双変性”
  • Runtime.Version (Java SE 16 & JDK 16)

    public static final class Runtime.Version extends Object implements Comparable<Runtime.Version> Java SE Platformの実装用のバージョン文字列の表現。 バージョン文字列は、任意にリリース前およびバージョン情報が続くバージョン番号で構成されます。 バージョン番号 「バージョン番号」、$VNUMは、ピリオド(U+002E)で区切られた要素の空ではないシーケンスです。 要素は、ゼロまたは先行ゼロのない符号なし整数です。 バージョン番号の最後の要素はゼロであってはなりません。 要素がインクリメントされると、それ以降の要素はすべて削除されます。 書式は次のとおりです。 [1-9][0-9]*((\.0)*\.[1-9][0-9]*)* シーケンスは任意の長さでも構いませんが、最初の4つの要素に

    Itisango
    Itisango 2021/09/12
    “「バージョン番号」、$VNUMは、ピリオド(U+002E)で区切られた要素の空ではないシーケンスです。”“バージョン番号の最後の要素はゼロであってはなりません。 書式は次のとおりです。 [1-9][0-9]*((\.0)*\.[1-9][0-9]*)*”
  • File (Java Platform SE 8)

    すべての実装されたインタフェース: Serializable, Comparable<File> public class File extends Object implements Serializable, Comparable<File> ファイルおよびディレクトリのパス名の抽象表現です。 ユーザー・インタフェースおよびオペレーティング・システムは、システムに依存するパス名文字列でファイルおよびディレクトリを指定します。このクラスは、階層的なパス名の抽象的でシステムに依存しないビューを提供します。抽象パス名は2つのコンポーネントで構成されます。 システムに依存する任意指定の接頭辞文字列。ディスク・ドライブ指示子、UNIXルート・ディレクトリの"/"、Microsoft Windows UNCパス名の"\\\\" など ゼロ以上の文字列名前のシーケンス。 抽象パス名の最初の名前は、デ

    Itisango
    Itisango 2021/09/12
    “抽象パス名の最初の名前は、ディレクトリ名またはホスト名(Microsoft Windows UNCパス名の場合)にすることができます。抽象パス名のそれ以降の各名前はディレクトリを示します。最後の名前はディレクトリとファイル”
  • CompletionStage (Java SE 11 & JDK 11 )

    CompletionStageが完了したときにアクションの実行または値の計算を行う、非同期の可能性がある計算のステージです。 ステージはその計算が終了したときに完了しますが、これに続いて他の依存ステージがトリガーされる場合があります。 このインタフェースで定義される機能は、少数の基形式しか取りませんが、それらがより大規模なメソッドのセットに展開することで、一定範囲の使用スタイルに対応します。 ステージによって実行される計算は、引数を必要とするか、結果を生成するか、あるいはその両方かに応じて、Function、ConsumerまたはRunnableとして(それぞれapply、acceptまたはrunを含む名前を持つメソッドを使用して)表されます。 たとえば: stage.thenApply(x -> square(x)) .thenAccept(x -> System.out.print(

    Itisango
    Itisango 2021/09/12
    “CompletionStageが完了したときにアクションの実行または値の計算を行う、非同期の可能性がある計算のステージです。 ステージはその計算が終了したときに完了しますが、これに続いて他
  • CompletableFuture (Java SE 11 & JDK 11 )

    型パラメータ: T - この将来のjoinおよびgetメソッドによって返される結果の型 すべての実装されたインタフェース: CompletionStage<T>, Future<T> public class CompletableFuture<T> extends Object implements Future<T>, CompletionStage<T> 明示的に(その値とステータスを設定して)完了できるFutureです。その完了時に発生する依存関数およびアクションをサポートし、CompletionStageとして使用できます。 2つ以上のスレッドがCompletableFutureのcomplete、completeExceptionallyまたはcancelを試行すると、1つのスレッドのみが成功します。 ステータスと結果を直接操作するこれらのメソッドおよび関連メソッドに加えて、C

    Itisango
    Itisango 2021/09/12
    “implements Future<T>, CompletionStage<T> 明示的に(その値とステータスを設定して)完了できるFutureです。その完了時に発生する依存関数およびアクションをサポートし、CompletionStageとして使用できます”
  • HttpClient (Java SE 11 & JDK 11 )

    HTTPクライアント。 HttpClientを使用して「リクエスト」を送信し、「レスポンス」を取得できます。 builderを介して HttpClientが作成されます。 ビルダーを使用して、クライアントごとに次のような状態を構成できます: 優先プロトコル・バージョン(HTTP/1.1またはHTTP/2)、リダイレクトの有無、プロキシ、認証プロバイダなどがあります。一度ビルドされると、HttpClientは不変になり、複数のリクエストの送信に使用できます。 HttpClientは、すべてのリクエストの構成情報とリソース共有を提供します。 HttpRequestが送信されるたびにBodyHandlerを指定する必要があります。 BodyHandlerは、レスポンス文(存在する場合)の処理方法を決定します。 HttpResponseを受信すると、ヘッダー、レスポンス・コードおよび文(typ

    Itisango
    Itisango 2021/09/12
    “ builderを介して HttpClientが作成されます。 ビルダーを使用して、クライアントごとに次のような状態を構成できます。: 優先プロトコル・バージョン(HTTP/1.1またはHTTP/2)、リダイレクトの有無、プロキシ、認証プロバイダ”
  • HttpResponse.BodyHandlers (Java SE 13 & JDK 13 )

    含まれているインタフェース: HttpResponse < T> public static class HttpResponse.BodyHandlers extends Object レスポンス文を文字列として処理したり、レスポンス文をファイルにストリーミングするなど、様々な便利なハンドラを実装するBodyHandlerの実装。 これらの実装では、ステータス・コードは調査されません。つまり、文は常に受け入れられます。 通常は、同等の名前がBodySubscriberを戻します。 また、必要に応じて、カスタム・ハンドラを使用してステータス・コードおよびヘッダーを確認し、同じタイプの別の文サブスクライバを返すこともできます。 次に、事前定義された体ハンドラを使用して、レスポンス文データのフローを一般的な高水準のJavaオブジェクトに変換する例を示します。 // Receives

    Itisango
    Itisango 2021/09/12
    “レスポンス本文を文字列として処理したり、レスポンス本文をファイルにストリーミングするなど、様々な便利なハンドラを実装するBodyHandlerの実装。 これらの実装では、ステータス・コードは調査されません”
  • CompletableFuture (Java SE 17 & JDK 17)

    Itisango
    Itisango 2021/09/12
    “public class CompletableFuture<T> extends Object implements Future<T>, CompletionStage<T> A Future that may be explicitly completed (setting its value and status), and may be used as a CompletionStage, supporting dependent functions and actions that trigger upon its completion.”
  • クラス ライブラリ開発のデザイン ガイドライン

    クラス ライブラリ開発のデザイン ガイドラインは、.NET Framework を拡張し、.NET Framework と対話するためのライブラリを開発するためのものです。 .NET Framework デザイン ガイドラインの目的は、開発に使用されるプログラミング言語に依存しない統一化されたプログラミング モデルを用意することによって、ライブラリ デザイナーが API の一貫性と使いやすさをユーザーに提供できるようにすることです。 .NET Framework を拡張したクラスおよびコンポーネントを開発するときは、これらのデザイン ガイドラインに従うことを強くお勧めします。 一貫性のないライブラリ デザインは、開発者の生産性を損なうだけでなく、ライブラリを採用する意欲を失わせます。 これらのガイドラインは、クラス ライブラリのデザイナーが、さまざまなソリューションの利点と欠点を把握できる

    クラス ライブラリ開発のデザイン ガイドライン
  • C++/CLI の基礎 ( デストラクタとファイナライザ ) - …Inertia

  • FileInfo クラス (System.IO)

    例 次の例は、FileInfo クラスのメイン メンバーの一部を示しています。 プロパティが最初に取得されると、FileInfo は Refresh メソッドを呼び出し、ファイルに関する情報をキャッシュします。 後続の呼び出しでは、Refresh を呼び出して、情報の最新のコピーを取得する必要があります。 using namespace System; using namespace System::IO; int main() { String^ path = Path::GetTempFileName(); FileInfo^ fi1 = gcnew FileInfo( path ); //Create a file to write to. StreamWriter^ sw = fi1->CreateText(); try { sw->WriteLine( "Hello" ); sw

    FileInfo クラス (System.IO)
  • How to create and use a JRDataSource adapter

    Itisango
    Itisango 2021/08/29
    この通りにつくれば大体うまくいく #JasperReport
  • Spring Boot + GraphQLでAPIを作成してみよう! - Yahoo! JAPAN Tech Blog

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog はじめに こんにちは、コマース福岡開発部で金融サービスのバックエンドを担当しているチョ ジョンミンと申します。 「Yahoo! JAPAN Tech Advent Calendar 2018」に寄稿させていただく機会をいただきましたので、前から興味のあったGraphQLAPIを実装してみました。記事では、GraphQLの概要とAPIの作り方を紹介します。 ターゲット 記事は、次の読者を想定して書かれています。 GraphQLに興味はあるが、作成した経験がない方 Spring BootでGraphQLAPIを作成してみたい方 目次 利用している技術 GraphQL概要 GraphQLのメリットとデメリット GraphQLのA

    Spring Boot + GraphQLでAPIを作成してみよう! - Yahoo! JAPAN Tech Blog
    Itisango
    Itisango 2021/08/08
    #SpringBoot “graphql-spring-boot-starter:5.2.0”
  • sealed 修飾子 - C# リファレンス - C#

    sealed 修飾子をクラスに適用すると、それ以外のクラスが、そのクラスから継承できなくなります。 次の例では、B クラスは A クラスを継承しますが、B クラスからはどのクラスも継承できなくなります。 class A {} sealed class B : A {} sealed 修飾子は、基底クラスの仮想メソッドまたは仮想プロパティをオーバーライドするメソッドやプロパティで使用することもできます。 これにより、クラスの派生が行えるようになり、そのクラスが特定の仮想メソッドまたは仮想プロパティをオーバーライドできなくなります。 例 次の例では、Z は Y から継承しますが、Z は仮想関数 F をオーバーライドできません。この仮想関数は X で宣言されており、Y でシールされています。 class X { protected virtual void F() { Console.Write

    Itisango
    Itisango 2020/11/09
    「sealed 修飾子をクラスに適用すると、それ以外のクラスが、そのクラスから継承できなくなります。 次の例では、B クラスは A クラスを継承しますが、B クラスからはどのクラスも継承できなくなります。」 #Csharp